我目前的情况是我打开一个进程,该进程在一个随机位置打开(这就是这个过程的工作原理)。
我有进程PID,所以我需要以某种方式聚焦此窗口,并将其移动到我的屏幕中心。 我做错了,因为我甚至无法专注于那个窗口......尝试使用不同的应用程序并得到相同的结果......
我选择窗口的方式 -
appl = pywinauto.application.Application()
appl.connect(process=824)
app_dialog = appl.top_window_()
app_dialog.Minimize()
app_dialog.Maximize()
##app_dialog.SetFocus() ##doesn't work aswell
##pywinauto.win32functions.SetForegroundWindow(app_dialog)## doesn't work
感谢阅读:)
答案 0 :(得分:0)
不能说为什么它不能与pywinauto一起工作...... 得到它与win32gui一起作为答案 - Python Window Activation
长而有效;)
答案 1 :(得分:0)
方法app_dialog.set_focus()
应该在pywinauto 0.6.2中有效。如果没有,它可能是一个错误。您的申请是否以某种方式公开发布?我想在我身边重现它。您是否正在尝试激活背景窗口,而在其上面有模态对话框?
第二种情况是SetForegroundWindow(...)
的错误用法。它应该提供一个句柄,但是你传递WindowSpecification
对象app_dialog
。正确的方法如下:
handle = app_dialog.wrapper_object().handle
pywinauto.win32functions.SetForegroundWindow(handle)