Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Windows上通过SSH获取桌面的屏幕截图_Python_Windows_Pywin32 - Fatal编程技术网

Python 在Windows上通过SSH获取桌面的屏幕截图

Python 在Windows上通过SSH获取桌面的屏幕截图,python,windows,pywin32,Python,Windows,Pywin32,所以我有一个SSH会话,通过WinSSHD(来自Ubuntu)连接到一个WindowsXP设备。我编写了一个小Python程序,用pywin32截图。当我在正常的“桌面”会话中直接在XP框上运行脚本时,一切正常,但如果我使用SSH连接并运行脚本,脚本将失败: Traceback (most recent call last):

所以我有一个SSH会话,通过WinSSHD(来自Ubuntu)连接到一个WindowsXP设备。我编写了一个小Python程序,用pywin32截图。当我在正常的“桌面”会话中直接在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 

我想我要找的是如何在windows中实现这一点。同样,我使用的是Python,可以安装任何需要的模块。我目前正在使用pywin32,因为它比PIL快得多。

我认为SSH是问题所在。我不确定SSH是否是最好的方法。最好的方法是在Windows端进行屏幕截图工作。我最近也做过类似的事情。我想拍摄一张在InternetExplorer中打开的网页的截图,为此我使用SeleniumWebDriver和Python绑定

我所做的是,我决定在TCP套接字的帮助下完成它。我刚刚编写了一个非常简单的Python脚本,它在Windows机器上打开TCP套接字并侦听连接。一旦收到连接,它就开始拍摄屏幕截图。因此,在您的情况下,它可以将屏幕截图放在那里,并将其保存在本地,然后脚本可以通过SSH连接到您希望该文件所在的系统

希望这能有所帮助。

我最终用zeromq创建了一个小的“屏幕截图服务器”,坐在“桌面”会话上,在需要时发送屏幕截图。使用zeromq的IPC会更容易(我认为更快),但windows不支持它,所以它必须使用本地主机TCP。不管是谁,谢谢你的投入!
DISPLAY=:0.0 import -window root /tmp/shot.png