gpt4 book ai didi

python - 如何右键单击 Windows 托盘图标并单击 Python 上下文菜单中的项目?

转载 作者:行者123 更新时间:2023-11-28 17:43:27 28 4
gpt4 key购买 nike

我需要右键单击 Windows 通知托盘图标,然后在出现的上下文菜单中选择(左键单击)其中一项。

我试过使用pywinauto ,并从 How To's 上的代码运行此代码时页: 从 pywinauto.application 导入应用程序 从 pywinauto 导入任务栏

# connect to outlook
outlook = Application().connect_(process=4436)

# click on Outlook's icon
taskbar.ClickSystemTrayIcon(12)

# Select an item in the popup menu
outlook.PopupMenu.MenuClick("Cancel Server Request")

我收到以下错误:

Traceback (most recent call last):
File "C:\dev\consumertms\temp.py", line 25, in <module>
taskbar.ClickSystemTrayIcon(12)
File "C:\Python27\lib\site-packages\pywinauto\taskbar.py", line 52, in ClickSystemTrayIcon
button = _get_visible_button_index(button)
File "C:\Python27\lib\site-packages\pywinauto\taskbar.py", line 42, in _get_visible_button_index
if not SystemTrayIcons.GetButton(i).fsState & \
File "C:\Python27\lib\site-packages\pywinauto\controls\common_controls.py", line 1878, in GetButton
button.idCommand)
RuntimeError: GetButtonInfo failed for button with command id 2

我目前运行的是 Windows 8,但需要它才能在 Windows XP 上运行。

我四处搜索,但找不到解决方法。

我的问题:此错误是否有解决方法?如果没有,我可以使用其他一些 Python 模块来自动执行此过程吗?一些代码片段将不胜感激。

谢谢

最佳答案

上下文菜单或下拉菜单可以是它自己的窗口上下文。您需要使用 findwindows.find_windows() 找到它。

当我需要访问非 native GUI 上的下拉菜单项时,我遇到了这个问题。获取该窗口类名的最简单方法是使用 SWAPY,它列出所有窗口对象并创建方便的 pywinauto 代码 https://code.google.com/p/swapy/ .

一个典型的方法是这样的:

outlook = Application().connect_(process=4436)
taskbar.ClickSystemTrayIcon(12)

# Use SWAPY to find the class name of the popup menu
w_handle = findwindows.find_windows(title=u'', class_name='name-found-in-SWAPY')[0]
popup = app.window_(handle=w_handle)
popup.Click(coords=(x,y))

关于python - 如何右键单击 Windows 托盘图标并单击 Python 上下文菜单中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21318550/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com