Python 使用pywinauto提取标题名称的步骤

Python 使用pywinauto提取标题名称的步骤,python,python-3.x,windows,pywinauto,Python,Python 3.x,Windows,Pywinauto,我最近开始使用pywinauto。我正在尝试获取弹出窗口的标题 仅供参考的应用背景是UIA 在上图中,弹出窗口的标题为“打开媒体”。是否有任何方法可以使用pywinauto提取/读取此标题 因此,我很好奇,是否可以使用pywinauto找到弹出窗口的标题。您可以使用以下pywinauto代码获得弹出窗口的标题: desktop = pywinauto.Desktop(backend="uia") window = desktop.windows(title="VL

我最近开始使用pywinauto。我正在尝试获取弹出窗口的标题

仅供参考的应用背景是UIA

在上图中,弹出窗口的标题为“打开媒体”。是否有任何方法可以使用pywinauto提取/读取此标题


因此,我很好奇,是否可以使用pywinauto找到弹出窗口的标题。

您可以使用以下pywinauto代码获得弹出窗口的标题:

desktop = pywinauto.Desktop(backend="uia")
window = desktop.windows(title="VLC media player", control_type="Window")[0]
wrapper_list = window.descendants(control_type="Window")
for wrapper in wrapper_list:
    print(wrapper.window_text())
结果是: “开放媒体”

您可以使用类似“inspect.exe”的检查工具找到它。 您可以使用“”轻松找到它

使用“Pywinauto recoder”,如果用鼠标光标悬停弹出窗口并按CTRL+SHIFT+F,则会将以下Python代码复制到剪贴板中:

with Window(u"VLC media player||Window"):
    wrapper = find(u"Open Media||Window")
然后,如果添加下一行,将得到与上面纯Pywinauto代码相同的结果

print(wrapper.window_text())

这不是关于pywinauto的问题。这是一个关于VLC的问题。这完全取决于VLC的实现是否可以观察窗口的标题。为了更清晰,我举了一个例子。不考虑任何窗口应用程序,我想提取弹出窗口的标题。这不能保证有效。它依赖于目标应用程序来实现所需的UIA接口,或者至少不破坏默认的系统实现。两者都不可靠。虽然UIA是您的最佳选择,但您必须准备好看到它在任何给定的目标应用程序中失败。