python - 如何在 pywinauto 中移动 UIAWrapper 窗口?

标签 python pywinauto

我注意到有一种通过 pywinauto (move_window) 中的 HwndWrapper 移动和调整 win32 窗口大小的方法,但对于 UIAWrappers 却没有这种方法。你知道如何做到这一点吗?

我尝试过使用 pygetwindow 的 getWindowsWithTitle函数来获取临时 win32 句柄,然后使用 moveTo/resizeTo 函数,但由于错误提示 ctypes.ArgumentError: argument 1: <class 'TypeError'>: expected WinFunctionType instance instead of WinFunctionType,我无法获取我想要的窗口。 ,这真的很奇怪。

最佳答案

好问题!这在“uia”后端中的实现方式与“win32”后端的实现方式不同。但我可以建议工作代码:

import pywinauto

app = pywinauto.Application(backend='uia').start(r'.\apps\WPF_samples\WpfApplication1.exe')
main = app.WPFSampleApplication.wrapper_object()

main.iface_transform.Move(0, 0) # move the window to top-left corner
main.iface_transform.Resize(500, 600) # change width and height

我们需要提供快捷方法并创建WindowWrapper,因为这仅特定于此控件类型。这在 issue #668 中进行跟踪。 .

关于python - 如何在 pywinauto 中移动 UIAWrapper 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61165628/

相关文章:

python - 这种三元条件有更好的解决方案吗?

python - 在 Jython 中获取上一行

python - 是否有跨操作系统的标准方法将 "tags"添加到文件

python - 导入 pywinauto(或 comtypes)会破坏现有的 COM 对象

python - 如何使用 pywinauto 控制 IE 浏览器

python - 无法在 python 中使用 pywinauto 自动点击 "Oracle VM virtual box"按钮

python - 如何右键单击 Windows 托盘图标并单击 Python 上下文菜单中的项目?

python - Python 和 C 之间独立于操作系统的程序间通信

python - 运行 tweepy 的 Airflow 任务退出并返回代码 -6

python-3.x - 使用 pywinauto 检查工具中的数据