无法从其他应用程序获取元素内部
Cannot get insides of the element from other app
我想找到带有文本的特定按钮(通过文本查找)并按下它。
我正在尝试从 teleramm desctop 应用程序的 'group'(屏幕截图上的'группа')元素获取内部信息,我知道那里有 defenetly 按钮列表,但我找不到任何关于 UIA 和 inspect.exe .我尝试了原始 automtaion dll 和 nuget UIAComWrapper。
SendMessage(获取文本)和 EnumChildWindows 也没有帮助我,因为 SendMessage 枚举没有 return 应用程序内部的其他句柄。
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 from inspector.exe
Telegram 桌面应用程序不支持像 UIA 这样的辅助功能已经很久了,看看 Github ticket。形式上,它有效,但在真正基本的层面上 - 没有检索消息历史文本内容、组和联系人姓名等的选项。
因此,在实现其中任何一个之前,无法以编程方式遍历 UI 元素。但如果你真的需要它,你可以看看OCR。
我想找到带有文本的特定按钮(通过文本查找)并按下它。 我正在尝试从 teleramm desctop 应用程序的 'group'(屏幕截图上的'группа')元素获取内部信息,我知道那里有 defenetly 按钮列表,但我找不到任何关于 UIA 和 inspect.exe .我尝试了原始 automtaion dll 和 nuget UIAComWrapper。 SendMessage(获取文本)和 EnumChildWindows 也没有帮助我,因为 SendMessage 枚举没有 return 应用程序内部的其他句柄。
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 from inspector.exe
Telegram 桌面应用程序不支持像 UIA 这样的辅助功能已经很久了,看看 Github ticket。形式上,它有效,但在真正基本的层面上 - 没有检索消息历史文本内容、组和联系人姓名等的选项。
因此,在实现其中任何一个之前,无法以编程方式遍历 UI 元素。但如果你真的需要它,你可以看看OCR。