【问题标题】:To extract the title name using pywinauto使用 pywinauto 提取标题名称
【发布时间】:2021-01-29 09:46:29
【问题描述】:

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

仅供参考,应用程序背景是 UIA。

在上图中,弹出窗口的标题是“Open Media”。有没有办法使用 pywinauto 提取/读取这个标题。

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

【问题讨论】:

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

标签: python python-3.x windows pywinauto


【解决方案1】:

您可以使用以下 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 recorder”轻松找到它

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

with Window(u"VLC media player||Window"):
    wrapper = find(u"Open Media||Window")

然后如果你添加下一行,你将得到与上面纯 Pywinauto 代码相同的结果。

print(wrapper.window_text())

【讨论】:

    猜你喜欢
    • 2012-12-25
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多