当前位置:嗨网首页>书籍在线阅读

20-获取活动窗口

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

20.9.1 获取活动窗口

屏幕上的活动窗口是当前处于前台并且接收键盘输入的窗口。如果你当前正在使用Mu编辑器编写代码,那么Mu编辑器的窗口为活动窗口。屏幕上的所有窗口中,同时仅有一个处于活动状态。

在交互式环境中,调用 pyautogui.getActiveWindow() 函数以获取 Window 对象(在Windows操作系统上运行时,从技术上讲是 Win32Window 对象)。

拥有该 Window 对象后,你可以获取它的所有属性。这些属性描述了它的大小、位置和标题。

leftrighttopbottom :一个整数,表示窗口边的x或y坐标。

toplefttoprightbottomleftbottomright :两个整数的命名元组,表示窗口角的(x, y)坐标。

midleftmidrightmidleftmidright :两个整数的命名元组,表示窗口边中间的(x, y)坐标。

widthheight :一个整数,表示窗口的一个维度,以像素为单位。

size :两个整数的命名元组,表示窗口的(宽度,高度)。

area :一个整数,表示窗口的面积,以像素为单位。

center :两个整数的命名元组,表示窗口的中心(x, y)坐标。

centerxcentery :一个整数,表示窗口中心的x或y坐标。

box :4个整数的命名元组,表示窗口(左侧、顶部、宽度、高度)。

title :窗口顶部标题栏中的文本字符串。

例如,要从窗口对象中获取窗口的位置、大小和标题信息,请在交互式环境中输入以下内容:

>>> import pyautogui
>>> fw = pyautogui.getActiveWindow()
>>> fw
Win32Window(hWnd=2034368)
>>> str(fw)
'<Win32Window left="500", top="300", width="2070", height="1208", title="Mu
1.0.1 # test1.py">'
>>> fw.title
'Mu 1.0.1  #  test1.py'
>>> fw.size
(2070, 1208)
>>> fw.left, fw.top, fw.right, fw.bottom
(500, 300, 2070, 1208)
>>> fw.topleft
(256, 144)
>>> fw.area
2500560
>>> pyautogui.click(fw.left + 10, fw.top + 20)

现在,你可以用这些属性来计算窗口内的精确坐标。如果你知道要单击的按钮总是位于窗口左上角的右侧10像素和向下20像素,并且窗口的左上角位于屏幕坐标(300,500),那么调用 pyautogui.click(310, 520) (或 pyautogui.click(fw. left + 10 fw.top + 20) ,如果 fw 包含该窗口的 Window 对象)将单击该按钮。这样,你就不必依靠速度较慢、可靠性较低的 locateOnScreen() 函数来找到按钮。