2014-03-04 94 views
1

在窗口對外窗口,我發現這樣一個問題:Get screenshot on Windows with Python?截圖在Python

採取完整的桌面截圖:

import sys 
from PyQt4.QtGui import QPixmap, QApplication 
from datetime import datetime 

date = datetime.now() 
filename = date.strftime('%Y-%m-%d_%H-%M-%S.jpg') 
app = QApplication(sys.argv) 
QPixmap.grabWindow(QApplication.desktop().winId()).save(filename, 'jpg') 

不過,我想借此外部窗口的屏幕截圖。 我有我想要使用win32gui關閉屏幕截圖窗口的HWND。

+0

我會想象你這樣做的方式完全相同,但你需要從'hwnd'中提取窗口ID .. –

回答

2

根據documentation for winId,返回的值是平臺相關的。

因此,對於Windows,它肯定必須(着名的遺言),返回hwnd,因此不需要進一步轉換。如果是這樣,那麼嘗試:

QPixmap.grabWindow(hwnd).save(filename, 'jpg') 

(PS:其實我已經在WinXP現在進行了測試,它爲我工作好)。

+0

嘿奇怪的是它在我的一臺電腦上工作,但在另一臺電腦上工作:TypeError :在該計算機上的QPixmap.grabWindow(sip.voidptr,int x = 0,int y = 0,int width = -1,int height = -1):參數1具有意外類型'lo ng' – edi9999

+0

;但我不知道最新的問題 – edi9999

+0

它問我一個sip.voidptr對象 – edi9999