Можно ли прочитать позицию и размеры стороннего приложения?

Можно ли прочитать позицию и размеры окна стороннего приложения .exe? Как? (желательно с помощью tkinter) Для позиционирования окна .pyw приложения. Можно ли привязать .pyw к уже готовому приложению?


Ответы (1 шт):

Автор решения: GrAnd

Вот как-то так:

import win32gui

def print_window_info(hwnd, *args):
    rect = win32gui.GetWindowRect(hwnd)
    x, y = rect[0], rect[1]
    w, h = rect[2] - x, rect[3] - y
    title = win32gui.GetWindowText(hwnd)
    print(f"Окно {title}:")
    print(f"    позиция (X,Y): ({x}, {y})")
    print(f"     размер (W,H): ({w}, {h})")

# можно пройтись по всем окнам
win32gui.EnumWindows(print_window_info, None)

# или попытаться найти конкретное
hwnd = win32gui.FindWindow("Notepad", None)
if hwnd:
    print_window_info(hwnd)

Результат для окна Notepad'а:

Окно Безымянный — Блокнот:
    позиция (X,Y): (96, 111)
     размер (W,H): (1528, 850)
→ Ссылка