如何解决无法从其他应用程序获取元素的内部
我想找到带有文本的特定按钮(按文本查找)并按下它。 我正在尝试从 Teleramm desctop 应用程序的“组”(屏幕截图上的“группа”)元素获取内部信息,我知道那里有明确的按钮列表,但我无法通过 UIA 和 inspect.exe 找到任何内容。我尝试了原始自动化 dll 和 nuget UIAComWrapper。 SendMessage(获取文本)和 EnumChildWindows 也没有帮助我,因为 SendMessage 枚举不会返回应用程序内的其他句柄。
AutomationElementCollection automation_element_collection = group_element.FindAll(TreeScope.Children,Condition.TrueCondition); //empty collection
AutomationElement automation_element_collection = group_element.FindFirst(TreeScope.Children,Condition.TrueCondition); //returns null
TreeWalker raw_view_walker = TreeWalker.RawViewWalker;
AutomationElement automation_element = raw_view_walker.GetFirstChild(group_element); //returns null
我做错了什么,还有其他项目可以帮助我吗?
解决方法
Telegram 桌面应用程序多年来一直不支持 UIA 等辅助功能,请查看 Github ticket。从形式上讲,它有效,但在非常基本的层面上 - 没有选项可以检索消息历史文本内容、组和联系人姓名等。
因此,在实现任何这些之前,无法以编程方式遍历 UI 元素。但如果你真的需要它,你可以看看 OCR。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。