【问题标题】:Notification Icon context menu通知图标上下文菜单
【发布时间】:2017-08-22 04:04:39
【问题描述】:

我正在尝试单击上下文菜单中的菜单项,该菜单项通过右键单击应用程序的任务栏通知图标来激活。我对如何访问菜单感到困惑。以下代码激活了菜单,但我不知道如何从那里继续。我无法获取弹出上下文菜单的任何信息。 Swapy 不显示菜单的任何信息。

def anchor_main_window(self, tip="Tooltip Text"):
    self.trace("anchor main window")
    taskbar.RightClickHiddenSystemTrayIcon(tip)

【问题讨论】:

    标签: pywinauto


    【解决方案1】:

    SWAPY 仅支持“win32”后端,而 pywinauto 0.6.0+ 还支持“uia”后端(MS UI 自动化技术)。 Getting Started Guide 中描述了差异 - 强烈建议阅读。

    如果你的应用是 WPF,你必须这样做:

    app = Application(backend="uia").connect(path="your_app.exe")
    print(app.ContextMenu.menu_items(), )
    app.ContextMenu.ApproxMenuItemName.invoke()
    

    因此,任务栏图标是系统级控件,而弹出菜单是目标应用程序进程中的特定于应用程序的控件。

    【讨论】:

    • 是的,我指定了 backend="uia"。去过也做过。我阅读了所有文档,而不仅仅是入门指南。应用程序中没有 ContextMenu 对象,即使在显示菜单时也是如此。我已经转储了此应用程序的窗口标识符,但上下文菜单中没有显示任何内容。
    • 您尝试过 Desktop(backend="uia").window(control_type="Menu") 吗?
    • 桌面对象中也没有找到菜单。
    • 嗯...我可以在 Inspect.exe 中在托盘图标上看到任何应用程序的菜单。它们是桌面的直接子代。可能这个应用程序暴露了一些非标准菜单。能否提供 Inspect.exe 的截图?
    • 很遗憾,我无法安装 windows SDK。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多