在Python中截取Windows外部窗口的屏幕截图

1 投票
1 回答
685 浏览
提问于 2025-04-17 20:45

我发现了这个问题:如何用Python在Windows上截屏?

这个方法可以用来截取整个桌面的屏幕:

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)。

1 个回答

3

根据winId的文档,返回的值是和平台有关的。

所以在Windows系统上,它肯定会返回一个hwnd,因此不需要进一步的转换。如果是这样的话,可以试试:

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

(顺便说一下,我实际上在WinXP上测试过这个,效果还不错)。

撰写回答