Итак, я хочу сделать скриншот определенного окна со специальным заголовком
Я пробовал этот код:
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
. Я не знаю особенностей этого модуля, но вполне вероятно, чтоFindWindow
выдаст ошибку, еслиwindow_title
не является строкой. Даже если это не так, будут ситуации, когда это так. Возможно, используйте""
в качестве значения по умолчанию для строковых переменных. - person incarnadine   schedule 12.09.2020