我想以编程方式从系统托盘中的工具提示中检索信息。
该图像显示了工具提示。
现在,我发现通过使用 Microsoft 的 Inspect.exe,它是“一种基于 Windows 的工具,使您能够选择任何 UI 元素并查看该元素的辅助功能数据”,理论上是这样的可以通过编程方式检索该值。
将鼠标悬停在工具栏中的潘多拉图标上会显示以下属性
它显示一个属性“名称”,其中包含我需要的确切数据。我不确定如何使用 win32api 以编程方式检索该值。我已经有了潘多拉图标的 hwnd。
此外,另一个 ui spy 工具 UiSpy.exe 将此同一属性称为“helpText”(不同的歌曲名称:p)
我尝试使用 getWindowText(pandoraSystrayIconHwnd)
但返回不同的文本。有谁知道这个“名称”值是什么,以及如何使用 win32api 检索它?这应该是可能的,因为inspect.exe是一个外部程序,可以以某种方式访问数据
我在 Python 中执行此操作,因为目标应用程序已经用 Python 编写。
最佳答案
这些 spy 应用程序可能正在使用 Active Accessibility和/或 UI Automation .
您可以尝试调用AccessibleObjectFromWindow工具栏上的 HWND 或 AccessibleObjectFromPoint如果您关心鼠标位置,请调用 IAccessible::get_accName .
请记住,托盘图标工具栏的类名和窗口层次结构没有记录。
如果您只关心 Pandora 而不是其他应用程序,那么我强烈建议您查找 other alternatives第一的。也许他们有一个带有标题等的隐藏窗口。
如果你不介意黑客攻击,那么你可以看看 TraySaver ,它是开源的,并且知道为托盘工具栏中每个图标存储的数据的内部格式。请记住,它相当旧,可能无法在较新版本的 Windows 上运行。如果您走这条路(我不推荐它),那么您必须记住您需要同时支持 32 位和 64 位资源管理器。
关于python - 如何以编程方式检索 Microsoft 的 Inspect.exe 中 "name"字段的等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42031717/