Получить положение и размер окна с помощью python
Как я могу получить и установить положение и размер окна (любой программы Windows) с помощью python?
Ответы
Ответ 1
Предполагая, что вы работаете в 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()
Ответ 2
Вы можете получить координаты окна, используя функцию GetWindowRect
. Для этого вам нужен дескриптор окна, с помощью которого вы можете использовать FindWindow
, если вы знаете что-то о окне (например, его название).
Чтобы вызвать функции API Win32 из Python, используйте pywin32
.
Ответ 3
Для 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
обозначают идентификатор окна и идентификатор процесса соответственно.