Pywinauto找到进程窗口并聚焦它

问题描述 投票:0回答:2

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

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

感谢您的阅读:)

python user-interface window pywinauto
2个回答
0
投票

无法说出为什么它不能与 pywinauto 一起使用... 让它与 win32gui 一起工作作为答案 - Python 窗口激活

漫长而高效;)


0
投票

方法

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

第二种情况是

SetForegroundWindow(...)
的错误用法。它应该提供一个句柄,但您传递了
WindowSpecification
对象
app_dialog
。正确的做法如下:

handle = app_dialog.wrapper_object().handle
pywinauto.win32functions.SetForegroundWindow(handle)
© www.soinside.com 2019 - 2024. All rights reserved.