首页 > 解决方案 > 使用 pywinauto 处理任务栏图标的上下文菜单

问题描述

我正在尝试自动化其中一个应用程序的退出操作。该应用程序的图标位于任务栏中。我使用在stackoverflow上找到的修改后的代码成功地打开了该图标的上下文菜单:

import pywinauto
from pywinauto.application import Application
import time

app= "Service is enabled."

app = Application(backend="uia").connect(path="explorer.exe")
st = app.window(class_name="Shell_TrayWnd")
t = st.child_window(title="Notification Chevron").wrapper_object()
t.click()

time.sleep(1)

list_box = Application(backend="uia").connect(class_name="NotifyIconOverflowWindow")
list_box_win = list_box.window(class_name="NotifyIconOverflowWindow")
list_box_win.wait('visible', timeout=30, retry_interval=3)

# time.sleep(1)

appOpened= list_box_win.child_window(title = app)
appOpened.click_input(button = "right")

执行上面的代码后,我到达了context menu打开的点: 在此处输入图像描述

接下来我想做的是点击Exit,我已经尝试通过指定鼠标点击坐标来做到这一点,但我注意到父图标的位置不时发生变化。我想做的是获取Exit按钮的句柄并自动发送点击。

------编辑--------

图标位于隐藏图标中

标签: pythonwindowsautomationtaskbarpywinauto

解决方案


因此,您要访问右键单击上下文菜单。如this answer中所述,您可以执行以下操作:

listbox.PopupMenu["Exit"].set_focus().click_input()

推荐阅读