簡體   English   中英

在Windows上通過SSH獲取桌面的屏幕截圖

[英]Get a Screenshot of the Desktop through SSH on Windows

因此,我通過WinSSHD(來自Ubuntu)與Windows XP機器進行了SSH會話。 我編寫了一個小型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 

我認為這是因為SSH會話與XP會話不同,並且無法訪問“桌面”顯示設備。 我在linux中找到有關如何執行此操作的參考(我認為這是我想要做的):

DISPLAY=:0.0 import -window root /tmp/shot.png

我想我正在尋找的是如何在Windows中執行此操作。 同樣,我使用的是Python,可以安裝所需的任何模塊。 我目前正在使用pywin32,因為它比PIL快得多。

我認為SSH是問題所在。 我不確定SSH是否是執行此操作的最佳方法。 最好的方法是在Windows的末端完成屏幕截圖。 我最近做了類似的事情。 我想對在Internet Explorer中打開的網頁進行截圖,為此我正在使用Selenium Webdriver以及Python綁定。

我所做的是我決定在TCP套接字的幫助下進行此操作。 我剛剛編寫了一個非常簡單的Python腳本,該腳本在Windows計算機上打開TCP套接字並偵聽連接。 接收到連接后,便會進行截圖的工作。 因此,在您的情況下,它可以將屏幕截圖保存在那里並保存在本地,然后腳本可以SSH到您要將此文件保存到的系統。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM