使用Pywinauto连接后无法设置设备管理器窗口焦点
Windows 10下无法为设备管理器窗口设置焦点的问题
在Windows 10系统中,我尝试了多种方法(参考Stack Overflow、YouTube及谷歌相关内容),试图将焦点设置到设备管理器窗口。目前能够成功打开设备管理器,但始终无法使其获得焦点,后续操作无法执行。
我尝试过两种打开设备管理器的方式:
- 通过
app = Application(backend="uia").start(r'mmc devmgmt.msc')启动:此方式会弹出标准用户权限提示,且无法执行设备卸载操作; - 通过模拟Win+R快捷键打开运行对话框,输入
devmgmt.msc启动:此方式可正常卸载设备,但通过findwindows.find_window获取窗口句柄,并使用Application(backend="uia").connect(handle=mywin)连接窗口后,仍无法设置焦点,尝试点击菜单、最大化窗口等操作均失败。
相关代码如下:
from pywinauto import Application, keyboard, mouse, findwindows import time # 用这种方式打开可以卸载设备 keyboard.send_keys("{LWIN down}" "r" "{LWIN up}") # 按下Win+R打开运行对话框 keyboard.send_keys("devmgmt.msc" "{ENTER}") # 在运行对话框中输入devmgmt.msc并回车 className = 'MMCMainFrame' name = 'Device Manager' time.sleep(1) # 等待1秒确保窗口打开,不等待的话操作太快有时会报错 mywin = findwindows.find_window(active_only=True, class_name=className, title_re=name) print("设备管理器窗口句柄 = " + str(mywin)) # 这是窗口的句柄 app = Application(backend="uia").connect(handle=mywin) print("app = " + str(app)) win = app.window(title_re=name) print("win = " + str(win)) dlg = app[name] print("dlg = " + str(dlg)) # *** 我只是尝试最大化窗口来确认是否已设置焦点 *** # 最大化设备管理器窗口 # maxWindow = app.DeviceManager.child_window(title="Maximize", control_type="Button") # maxWindow.click_input() # 点击最大化按钮
内容的提问来源于stack exchange,提问作者JamesL3H
相关产品推荐
相关产品推荐

