Windows UI 自动化 - 不捕获所有子树元素

Windows UI Automation - Not capturing all subtree elements

我正在尝试捕获特定应用程序的所有子树元素,在某些机器上我获得了所有元素,但在某些机器上一半的元素(即子元素)丢失了。

FindAll(TreeScope.Subtree, Condition.TrueCondition);

我已经尝试安装 Microsoft .NET Framework 4.5 但没有成功

可能是什么问题?为什么 UI 自动化在不同的机器上表现不同?不允许 UI 自动化获取所有子元素的客户端计算机可能缺少什么?

客户端机器是否也需要Microsoft .NET Framework 4.5 SDK? 系统配置:

开发人员机器:(工作正常)

操作系统:Windows7专业

开发应用程序:Visual Studio 2012 Professional

.NET 框架: 4.5.2

.NET Framework SDK: 4.5

客户端机器:(无法获取子元素)

操作系统:Windows7专业

.NET 框架: 4.5

.NET Framework SDK: NA

开发者机器上没有安装额外的软件,Framework 和 Framework SDK 也是 Visual Studio 2012 才安装的。

获取元素的代码很简单,我正在尝试获取鼠标位置的元素:

System.Windows.Point _location = new System.Windows.Point(Cursor.Position.X,Cursor.Position.Y);

AutomationElement _ele = AutomationElement.FromPoint(_location);

我不知道为什么会存在这个问题,但我已经在一个经过测试的应用程序中看到,有时必须选择并单击父节点以展开其子节点,以便可以通过自动化看到它们。

所以您可以做的是创建您的自定义查找方法,该方法选择并单击一个节点以展开它,然后再尝试检索其子节点。

签署我们的 exe 后,我们开始获取所有必需的元素,签署 exe 将增加您的应用程序的访问权限。