使用 PyWinAuto(或其他任何工具)与任务栏上的隐藏图标进行交互

Using PyWinAuto (or anything else) to interact with hidden icons on the taskbar

我正在尝试使用 python 在 windows 7 中找到并单击任务栏上的隐藏图标(通过单击白色三角形显示)。我一直在尝试为此使用 pywinauto,但它似乎没有找到并单击这些隐藏图标之一的功能。甚至 pywinauto 中的任务栏模块也不起作用(可能是因为已过时)。我该怎么做?

我试图访问的自动化应用程序只能通过单击其在任务栏中的隐藏图标来显示。隐藏的图标,我的意思是在通知区域。

我已尝试 pywinauto.taskbar.SystemTrayIcons,但 DrawOutline 方法显示这是任务栏的错误区域。并且使用 taskbar.SystemTrayIcons.WrapperObject().Button(0) 无论如何都不起作用,但给出了 GetButtonInfo 失败的异常。

我也尝试过使用 SWAPY 创建 python 代码来查找和单击相关按钮,虽然它可以单击按钮(有益地命名为 'Button')以显示隐藏的图标,它没有显示如何单击这些图标。

在 64 位 Python(2.7 或 3.4,无所谓)上安装 latest version of pywinauto 和 运行 以下代码:

from pywinauto import taskbar
taskbar.TaskBar.Button.click_input()
popup_dlg = taskbar.explorer_app.window(class_name='NotifyIconOverflowWindow')
popup_toolbar = popup_dlg.Overflow_Notification_Area
print(popup_toolbar.texts()[1:])

此外,您可以根据检索到的文本按感兴趣的按钮:

popup_toolbar.button('your program name').click_input(double=True)

编辑(2019 年 1 月):此代码可能不适用于最新的 Windows 10 RS1+,因为通知图标区域发生了重大变化,但它应该适用于 Win7 和 Win8.1。