PyWinAuto:如何找到从一个进程启动但由另一个进程拥有的窗口



我正在使用pywinauto尝试自动化一些事情让我在伪代码中介绍一下我的工作流程

open excel
select add in (WOW.EXE) in menu
click on button in lower ribbon
app opens in a new window running in WOW.EXE

对于我的代码,我正在尝试类似于的东西

app = Application(backend="uia").connect(path="EXCEL.EXE", title="Book 1 - WOW open")
try:
app.Book1WOWopen.set_focus()
app.Book1WOWopen.MagicButton.click()
time.sleep(10)
except: pass
try:
app2 = Application(backend="uia").connect(path="WOW.exe", title="WOW WOW WOW")
app2.window(title="WOW WOW WOW").close()
except: pass

奇怪的是,这似乎不起作用。如果我在UIVerify中查看,我可以看到WOW窗口位于EXCEL的窗口树下所以我想知道这是否意味着它在某种程度上被隐藏了?

请检查WOW窗口在Inspect.exe或UIVerify中是否具有相同或不同的进程ID。当单个应用程序的进程很少时,可能会出现这种情况:例如,Windows 10上的Calculator(是的,甚至Calculator:(。

一种可能的方法是使用Desktop(backend="uia")而不是Application(backend="uia")。当然,连接不是必须的。

Desktop(backend="uia").window(title="WOW WOW WOW").close()

相关内容

  • 没有找到相关文章