我正在创建Beta测试人员报告模块,以便他们可以发送我的软件评论,但我希望可以选择在报告中包含屏幕截图.如何在Windows上使用Python截取屏幕截图?我在Linux上找到了几个例子,但在Windows上没有多少运气.
经过几个小时的谷歌搜索,我设法"写"这个:
import win32gui
from ctypes import windll
hwnd = win32gui.FindWindow(None, 'Steam')
hdc = win32gui.GetDC(hwnd)
hdcMem = win32gui.CreateCompatibleDC(hdc)
hbitmap = win32ui.CreateBitmap()
hbitmap = win32gui.CreateCompatibleBitmap(hdcMem, 500, 500)
win32gui.SelectObject(hdcMem, hbitmap)
windll.user32.PrintWindow(hwnd, hdcMem, 0)
Run Code Online (Sandbox Code Playgroud)
这样对吗?怎么保存?
提前致谢.
例如,我正在运行一个Java程序。我可以使用python获取此Java程序的内容(屏幕截图)吗?不是全屏显示,只是Java程序。
我已经看过这个模块,但是它需要一个参数“程序窗口在哪里”:
import pyscreenshot as ImageGrab
if __name__ == "__main__":
# part of the screen
im=ImageGrab.grab(bbox=(10,10,510,510)) # X1,Y1,X2,Y2
im.show()
#-#
Run Code Online (Sandbox Code Playgroud)
但这可能不是我想要的,因为它需要bounding_box。
我使用以下代码示例来捕获屏幕截图:
/sf/answers/228256801/ /sf/answers/1704667191/
当对 Firefox 或 Chrome 进行屏幕截图时,它们会返回空白的黑色图像。捕获记事本的屏幕截图效果很好。我对此做了一些研究,我认为这是因为它们是 GPU 加速的。其他屏幕截图库也可以工作,但我需要它,这样我就可以捕获应用程序的屏幕截图,即使它当前不可见。
有没有人解决了类似的问题,或者有人可以指出我正确的方向吗?谢谢。