因此,我通過WinSSHD(從Ubuntu)獲得了一個到Windows XP盒子的SSH會話。我編寫了一個小型的Python程序,用pywin32截圖。一切工作正常,當我直接在正常的「桌面」會話,但如果我SSH在運行的XP盒腳本並運行該腳本失敗的腳本:在Windows上通過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並可以安裝任何需要的模塊。我目前使用pywin32,因爲這比PIL快得多。
我最終創建了一個帶有zeromq的「截圖服務器」,以便在「桌面」會話中發送請求時發送截圖。使用zeromq的IPC會更容易(也更快,我認爲),但它在Windows上不受支持,因此它必須使用localhost TCP。 Anywho,感謝您的輸入! – DaveO 2012-07-12 23:06:46