我怎样才能获得和设置窗口(任何Windows程序)的位置和大小与Python?
假设你在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()
您可以使用GetWindowRect
函数获取窗口坐标。 为此,你需要一个窗口的句柄,你可以使用FindWindow
,假设你知道关于窗口的东西(比如它的标题)。
要从Python调用Win32 API函数,请使用pywin32
。
对于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
代表window id和process id。