获取控件绝对坐标 pywinauto
时间: 2023-09-10 08:09:17 浏览: 94
要获取 Pywinauto 中控件的绝对坐标,你可以使用 `get_properties()` 方法来获取控件的属性。然后,你可以使用控件的 `rectangle()` 方法来获取控件的位置和大小信息。接着,你可以使用 Pywinauto 的 `win32functions.MapWindowPoints()` 方法将控件的位置转换为屏幕上的绝对坐标。
以下是一个示例代码:
```python
from pywinauto import Application, win32functions
app = Application().connect(title='Your window title')
control = app.YourWindow.YourControl
# 获取控件的属性
props = control.get_properties()
print(props)
# 获取控件的位置和大小信息
left, top, right, bottom = control.rectangle()
# 获取控件所在的窗口句柄
hwnd = control.handle
# 将控件的位置转换为屏幕上的绝对坐标
pt1 = (left, top)
pt2 = (right, bottom)
win32functions.MapWindowPoints(hwnd, 0, pt1, 1)
win32functions.MapWindowPoints(hwnd, 0, pt2, 1)
x1, y1 = pt1
x2, y2 = pt2
print(f"控件左上角坐标为:({x1}, {y1})")
print(f"控件右下角坐标为:({x2}, {y2})")
```
这个示例代码连接到一个指定窗口并获取其控件的位置和大小信息。然后,它获取了控件所在的窗口句柄,并使用 `MapWindowPoints()` 方法将控件的位置转换为屏幕上的绝对坐标。最后,它打印出了控件的左上角和右下角坐标。
阅读全文