Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pywinauto查找进程窗口并将其聚焦_Python_User Interface_Window_Pywinauto - Fatal编程技术网

Python Pywinauto查找进程窗口并将其聚焦

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_()

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

我有进程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作为答案-


长期有效;)

无法说明为什么它不能与pywinauto一起使用。。。 用win32gui作为答案-


长期有效;)

方法
app\u对话框。set\u focus()
应在pywinauto 0.6.2中工作。如果不是,它可能是一个bug。您的应用程序是否以某种方式公开?我想在我这边复制它。当您在背景窗口顶部有模式对话框时,是否尝试激活背景窗口

第二种情况是错误地使用了
setforegroundindow(…)
。它应该给出一个句柄,但您要传递
WindowSpecification
object
app\u对话框
。正确的方法如下:

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

方法
app\u对话框。set\u focus()
应在pywinauto 0.6.2中工作。如果不是,它可能是一个bug。您的应用程序是否以某种方式公开?我想在我这边复制它。当您在背景窗口顶部有模式对话框时,是否尝试激活背景窗口

第二种情况是错误地使用了
setforegroundindow(…)
。它应该给出一个句柄,但您要传递
WindowSpecification
object
app\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中修复它。谢谢你报告这个问题。