Python 如何使用Pywinauto读取标题名

Python 如何使用Pywinauto读取标题名,python,pywinauto,Python,Pywinauto,下面是如何阅读标题名的代码 from pywinauto.application import * import time app=Application.Start("apps.exe") app.window_(title="aps a.b.c.d") time.sleep(2) 之后代码给出错误,如未找到窗口 因此,我的问题是如何将aps a.b.c.d传递到窗口标题。我注意到pywinauto会导致非常微妙的文件计时错误。如果这是你的问题,这甚至不是一个坏问题 仅仅因为流程已经启动,并

下面是如何阅读标题名的代码

from pywinauto.application import *
import time
app=Application.Start("apps.exe")
app.window_(title="aps a.b.c.d")
time.sleep(2)
之后代码给出错误,如未找到
窗口


因此,我的问题是如何将aps a.b.c.d
传递到窗口标题。

我注意到pywinauto会导致非常微妙的文件计时错误。如果这是你的问题,这甚至不是一个坏问题

仅仅因为流程已经启动,并不意味着窗口已经存在并完全形成。您的睡眠应该在Application.Start()之后。但这是一个草率的解决方案,不能在所有情况下对所有系统都起作用

我已经求助于使用len(pwa_app.windows_()和pwa_app.top_window_()来确保应用程序处于我想要的状态

然而,这有它的缺点。当创建或销毁窗口时,这些函数似乎能够导致异常。因此,我不使用普通的time.sleep()调用,而是使用类似这样的调用

#Do While Loop; continuous retry on exception
condition = True
while condition:
    try:
        window_count = len( app.windows_() )
    except:
        continue

    if window_count == num:
        condition = False
    else:
        time.sleep( WAITTIME )
如果有人能给我解释一个更好的方法,我会很高兴的。我在文件中找不到任何提及这些问题的地方。虽然这并不优雅,而且会对CPU造成沉重负担,但它在所有情况下都能正常工作

编辑


在浏览堆栈溢出时,我发现pywinauto提供了一个与我的示例完全相同的函数。

现在还不清楚您试图在这里实现什么,因为您提供的代码没有抛出任何错误(我用Notepad.exe尝试了它,它可以工作)。你到底想在这里做什么,还有什么不起作用?你能提供显示错误的代码吗?当我运行上面的代码时,我有一个名为aps a.b.c.d的屏幕,上面的代码给出了错误“找不到窗口”@user157530,那么这里肯定发生了其他事情,但你没有提供太多数据来处理。错误的确切文本是什么?您使用的是什么版本的Python?您使用的是什么版本的pywinauto?您使用的是什么版本的Windows?