невозможно захватить заголовок окна Python - PullRequest
0 голосов
/ 17 октября 2019

Следующий фрагмент кода должен найти окно «Notes.txt - Блокнот» и сделать снимок экрана этого окна.

import pyautogui
import win32gui

def screenshot(window_title="Notes.txt - Notepad"):
    if window_title:
        hwnd = win32gui.FindWindow(window_title, None)
        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


im = screenshot('Calculator')
if im:
    im.show()

Проблема в том, что независимо от того, что я передаю как window_titleвсегда возвращается:

Window not found!

Когда я print(hwnd) оцениваю 0

Название файла: enter image description here

1 Ответ

0 голосов
/ 18 октября 2019

Проблема заключается здесь - hwnd = win32gui.FindWindow(window_title, None).

Замените его на win32gui.FindWindowEx(None, None, None, window_title), и оно должно работать.

Документы

РЕДАКТИРОВАТЬ:

win32gui.FindWindow(None, window_title) также должны работать.

...