无法从其他应用程序获取元素的内部信息



我想找到带文本的特定按钮(按文本找到(并按下它。我正试图从teleramm destop应用程序的"group"(screanshot上的"Γруппа"(元素中获取内部信息,我知道那里有一个防御按钮列表,但我找不到任何UIA和inspect.exe。我尝试了原始automtaion 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

我做错了什么?是否有其他项目可以帮助我?

screanshot来自inspector.exe

Telegram Desktop应用程序不支持UIA等易访问性功能,看看Github吧。从形式上讲,它是有效的,但在真正的基本层面上——没有检索消息历史文本内容、组和联系人姓名等的选项。

因此,在实现这些元素之前,根本没有办法以编程方式遍历UI元素。但如果你真的需要它,你可以看看OCR。

最新更新