Python Pywinauto查找进程窗口并将其聚焦
我目前的情况是,我打开了一个进程,它在一个随机位置打开(这就是这个进程的工作原理) 我有进程PID,所以我需要以某种方式聚焦此窗口,并将其移动到屏幕中央。 我做错了什么,因为我甚至不能把焦点放在那个窗口上。。。尝试了不同的应用程序,得到了相同的结果 我选择窗口的方式-Python Pywinauto查找进程窗口并将其聚焦,python,user-interface,window,pywinauto,Python,User Interface,Window,Pywinauto,我目前的情况是,我打开了一个进程,它在一个随机位置打开(这就是这个进程的工作原理) 我有进程PID,所以我需要以某种方式聚焦此窗口,并将其移动到屏幕中央。 我做错了什么,因为我甚至不能把焦点放在那个窗口上。。。尝试了不同的应用程序,得到了相同的结果 我选择窗口的方式- appl = pywinauto.application.Application() appl.connect(process=824) app_dialog = appl.top_window_()
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作为答案-
长期有效;) 无法说明为什么它不能与pywinauto一起使用。。。 用win32gui作为答案-
长期有效;) 方法
app\u对话框。set\u focus()
应在pywinauto 0.6.2中工作。如果不是,它可能是一个bug。您的应用程序是否以某种方式公开?我想在我这边复制它。当您在背景窗口顶部有模式对话框时,是否尝试激活背景窗口
第二种情况是错误地使用了setforegroundindow(…)
。它应该给出一个句柄,但您要传递WindowSpecification
objectapp\u对话框
。正确的方法如下:
handle = app_dialog.wrapper_object().handle
pywinauto.win32functions.SetForegroundWindow(handle)
方法
app\u对话框。set\u focus()
应在pywinauto 0.6.2中工作。如果不是,它可能是一个bug。您的应用程序是否以某种方式公开?我想在我这边复制它。当您在背景窗口顶部有模式对话框时,是否尝试激活背景窗口
第二种情况是错误地使用了setforegroundindow(…)
。它应该给出一个句柄,但您要传递WindowSpecification
objectapp\u对话框
。正确的方法如下:
handle = app_dialog.wrapper_object().handle
pywinauto.win32functions.SetForegroundWindow(handle)
那很有趣。不久前我们修复了方法set_focus()。它应该与pywinauto 0.6.2可靠地配合使用。你使用哪个版本?我使用的是pywinauto(0.6.2),谢谢。它能与正确的
SetForegroundWindow
call一起工作吗?这很有趣。不久前我们修复了方法set_focus()。它应该与pywinauto 0.6.2可靠地配合使用。你使用哪个版本?我使用的是pywinauto(0.6.2),谢谢。它能与正确的SetForegroundWindow
call一起工作吗?用WireShark检查了我的答案中的代码,发现它能工作,但。set\u focus()
确实不能。将在0.6.3中修复它。感谢您报告此问题。使用WireShark检查了我的答案中的代码,发现它可以工作,但是。set\u focus()
确实不行。将在0.6.3中修复它。谢谢你报告这个问题。