したがって、WinSSHD(Ubuntuから)を介してWindows XPボックスへのSSHセッションがあります。pywin32 でスクリーンショットを撮る小さな Python プログラムをコーディングしました。通常の「デスクトップ」セッションで XP ボックスでスクリプトを直接実行すると、すべて正常に動作しますが、SSH でスクリプトを実行すると、スクリプトは失敗します。
Traceback (most recent call last):
File "ss.py", line 38, in <module>
win32_ss()
File "ss.py", line 19, in win32_ss
cDC.BitBlt((0, 0),(w, h) , dcObj, (0, 0), win32con.SRCCOPY)
win32ui.error: BitBlt failed
これは、SSH セッションが XP セッションとは異なるセッションであり、「デスクトップ」ディスプレイ デバイスにアクセスできないためであると想定しています。Linuxでこれを行う方法に関するリファレンスを見つけました(これが私がやりたいことだと思います):
DISPLAY=:0.0 import -window root /tmp/shot.png
私が探しているのは、Windowsでこれを行う方法だと思います。繰り返しますが、私は Python を使用しており、必要なモジュールをインストールできます。これはPILよりもはるかに高速であるため、現在pywin32を使用しています。