丢失的孩子将inspect.exe与UIAComWrapper.dll进行比较,返回AE.RootElement.FindAll的值(TreeScope.Children,Condition.TrueCondition)

时间:2017-09-10 16:54:09

标签: c# .net windows vb.net microsoft-ui-automation

我正在尝试与第三方应用程序进行交互。我想保存客户端显示的文本值以供审核。

使用UISpy.exe时有许多缺少元素,使用Inspect.exe时有完整列表。这让我相信,为了与这个应用程序进行交互,我必须使用UIAComWrapper.dll。

这是inspect.exe结果,因为我想存储它,所以提供了完整的信息。

包含所有孩子的inspect.exe:

inspect.exe with all children

当我运行以下代码时,它将返回除一个编辑元素之外的所有元素。

Dim rootChildren = AutomationElement.RootElement.FindAll(TreeScope.Children, Condition.TrueCondition)

如何获取根元素的子元素的完整列表?

当我使用标准的UIAutomationClient.dll(没有com包装器)时,我会获得rootElement的完整子列表,包括编辑元素。但是,该元素没有孩子期望标题栏。

我想准确检索inspect.exe为此元素显示的内容,然后存储树。

1 个答案:

答案 0 :(得分:0)

第三方应用程序以管理员身份运行,但Visual Studio却没有。当VS打开并以管理员身份运行时,rootElement.children列表与inspect.exe匹配。