将鼠标悬停在图标上并使用pywinauto和python获取工具提示文本

sh7euo9m  于 7个月前  发布在  Python
关注(0)|答案(2)|浏览(135)

我想将鼠标悬停在第三方图标(例如,'CCleaner'出现在系统托盘中的Windows)并获取变量中的工具提示文本。(tooltip_index),pywinauto.controls.GetTipText(tooltip_index)和pywinauto.GetToolTipsControl()方法用于获取工具提示信息。但我的代码中出现错误。不确定如何获取tooptip_index index。一段代码如下:

import pywinauto
from pywinauto import Application, taskbar

def click_tray_icon():
    app = Application(backend="uia").connect(path="explorer")
    sys_tray = app.window(class_name="Shell_TrayWnd")

    sys_tray.child_window(title="People").click_input(button='left', double=True)
    s = pywinauto.controls.common_controls.ToolTipsWrapper(sys_tray).texts()
    print(s)
    pywinauto.mouse.move(coords=(1729, 1063))

    pywinauto.controls.GetTip(1)
    pywinauto.controls.GetTipText(1)

个字符

uxhixvfz

uxhixvfz1#

好吧,我有机会做一个示例脚本。但它应该在当前的主分支上工作(0.6.6还没有发布)。所以你必须这样安装pywinauto:

pip uninstall pywinauto
pip install https://github.com/pywinauto/pywinauto/archive/master.zip

字符串
代码包含所有中间打印以显示我是如何编写的。每一个下一步都包含从以前的dump_tree输出中复制粘贴child_window规范。我只是删除了不必要的auto_id="1504"过滤器,因为我不确定这些值在所有Windows版本上是否相同。

from __future__ import print_function
from pywinauto import Desktop

d = Desktop(backend='uia')

# print top level windows
# NOTE: method .windows() is not yet available for Desktop in pywinauto==0.6.5
for w in d.windows():
    print(w)

# print Taskbar subtree
d.Taskbar.dump_tree()

main_tray_toolbar = d.Taskbar.child_window(title="User Promoted Notification Area", control_type="ToolBar")

# print titles of main tray area
for text in main_tray_toolbar.texts():
    print(text)

notification_area_expand = d.Taskbar.child_window(title="Notification Chevron", control_type="Button")
notification_area_expand.invoke()
notification_area = d.window(title="Notification Overflow", control_type="Pane")

# print expanded area subtree
notification_area.dump_tree()

# print hidden icon texts
hidden_toolbar = notification_area.child_window(title="Overflow Notification Area", control_type="ToolBar")
for text in hidden_toolbar.texts():
    print(text)

u2nhd7ah

u2nhd7ah2#

pywinauto.controls.uia_controls.ToolbarWrapper文档字符串指出,
“请注意,工具提示控件是顶部窗口的子级,而不是工具栏的子级。”
这正是我所做的,只需app.top_window(),您就会收到工具提示:D

相关问题