Получить положение и размер окна с помощью Python - PullRequest
21 голосов
/ 22 августа 2011

Как я могу получить и установить положение и размер окна (любой программы Windows) с помощью python?

Ответы [ 3 ]

26 голосов
/ 22 августа 2011

Если вы работаете в Windows, попробуйте использовать модуль pywin32 win32gui с его функциями EnumWindows и GetWindowRect.

Если вы используете Mac OS X, вы можете попробовать appscript.

Для Linux вы можете попробовать один из множества интерфейсов к X11.

Редактировать: Пример для Windows (не тестировался):

import win32gui

def callback(hwnd, extra):
    rect = win32gui.GetWindowRect(hwnd)
    x = rect[0]
    y = rect[1]
    w = rect[2] - x
    h = rect[3] - y
    print("Window %s:" % win32gui.GetWindowText(hwnd))
    print("\tLocation: (%d, %d)" % (x, y))
    print("\t    Size: (%d, %d)" % (w, h))

def main():
    win32gui.EnumWindows(callback, None)

if __name__ == '__main__':
    main()
7 голосов
/ 22 августа 2011

Координаты окна можно получить с помощью функции GetWindowRect.Для этого вам понадобится дескриптор окна, который вы можете получить с помощью FindWindow, если вы знаете что-то об окне (например, его заголовок).функции из Python, используйте pywin32.

2 голосов
/ 01 февраля 2016

Для Linux вы можете использовать инструмент, который я сделал здесь . Инструмент предназначен для немного другого использования, но вы можете использовать API напрямую для своих нужд.

Установить инструмент

sudo apt-get install xdotool xprop xwininfo
git clone https://github.com/Pithikos/winlaunch.git && cd winlaunch

В терминале

>>> from winlaunch import *
>>> wid, pid = launch('firefox')
>>> win_pos(wid)
[3210, 726]

wid и pid означают идентификатор окна и идентификатор процесса соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...