我注意到有一种通过 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/