python - 使用 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
按钮的句柄并自动发送点击。
------编辑--------
图标位于隐藏图标中
解决方案
因此,您要访问右键单击上下文菜单。如this answer中所述,您可以执行以下操作:
listbox.PopupMenu["Exit"].set_focus().click_input()
推荐阅读
- python - 如何使用 pymongo 在文档 db 中插入/更新复杂的 dict 列表?
- nativescript - 如何在 iOS 中使用 NativeScript camera-plus 制作全屏相机?
- java - iText PDF 在 android 中显示马拉地语、印地语和不同语言
- r - 如何在R中的Spark数据框连接中用变量表示列名?
- c# - 当我想保存我的表时,db.savechanges() 会给出一个错误,因为该数据之前已被使用过
- ios - 向 Heathkit 提示授权请求失败
- java - 如何使用 Java 代码登录 Google 表格?
- html - 为什么我的锚文本堆叠在一起,我该如何解决?
- python - 如何创建类似于 yakuake 的“桌面下拉菜单”?
- angular - 角度 10 - 从日期选择器中选择日期并在图表年份下拉列表中显示所选年份