因此,我通过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