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

时间:2015-04-14 15:28:36

标签: python taskbar pywinauto

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

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

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

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

1 个答案:

答案 0 :(得分:2)

在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)

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