Pywinauto找到进程窗口并聚焦它



我目前的情况是我打开一个进程,该进程在随机位置打开(这就是这个过程的工作方式(。

我有进程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

感谢您阅读:)

不能说为什么它不适用于 pywinauto...让它与win32gui一起使用作为这里的答案 - Python窗口激活

长而高效的;)

方法app_dialog.set_focus()应该在pywinauto 0.6.2中工作。如果不是,则可能是错误。您的应用程序是否以某种方式公开可用?我想在我这边重现它。您是否正在尝试在背景窗口顶部有模式对话框时激活背景窗口?

第二种情况是错误地用法SetForegroundWindow(...)。它应该给出一个句柄,但您将对象传递WindowSpecification app_dialog.正确的方法如下:

handle = app_dialog.wrapper_object().handle
pywinauto.win32functions.SetForegroundWindow(handle)

最新更新