【发布时间】:2020-12-30 14:42:51
【问题描述】:
所以,我想截取带有特殊标题的特定窗口
我试过这段代码:
import pyautogui
import win32gui
def screenshot(window_title=None):
if window_title:
hwnd = win32gui.FindWindow(None, window_title)
if hwnd:
win32gui.SetForegroundWindow(hwnd)
x, y, x1, y1 = win32gui.GetClientRect(hwnd)
x, y = win32gui.ClientToScreen(hwnd, (x, y))
x1, y1 = win32gui.ClientToScreen(hwnd, (x1 - x, y1 - y))
im = pyautogui.screenshot(region=(x, y, x1, y1))
return im
else:
print('Window not found!')
else:
im = pyautogui.screenshot()
return im
if (im := screenshot('Calculator')):
im.show()
是的,这是可行的,但是如何在不将其置于前台的情况下获取窗口的屏幕截图?
【问题讨论】:
-
我建议不要将您的
window_title默认为None。我不知道这个模块的细节,但如果window_title不是字符串,FindWindow很可能会抛出错误。即使没有,也会有这种情况。也许使用""作为字符串变量的默认值