使用 UIAutomation 获取按钮的路径

Getting the path of a button using UIAutomation

本文关键字:路径 按钮 获取 UIAutomation 使用      更新时间:2023-10-16

我正在尝试获取另一个应用程序唯一路径的按钮,因为我想保存它,以便在再次运行时关闭应用程序后再次访问它。我对保存路径的任何可能方法感兴趣,我可以遵循该路径以自动访问按钮。

我得到了以下代码中的按钮,但我不知道如何保存其路径(如在日志中(以便再次访问它。

GetCursorPos(&cursorPos);
CComPtr<IUIAutomationElement> elFromPoint;
_automation->ElementFromPoint(cursorPos, &elFromPoint);

UI 自动化中的控件没有绝对的"路径"。您可以从元素开始遍历自动化树,直到到达桌面,如下所示:如何遍历自动化树,并在遍历树时创建元素的路径。可以使用此存储的"路径"来查找元素,方法是从桌面向下遍历树,或使用UI 自动化提供的搜索机制搜索元素的特定属性。请记住,某些控件可能无法确定,因为没有单个属性充当控件的 ID(AutomationId 取决于提供程序的实现(,在这种情况下,您需要在存储的元素属性和找到的实际元素之间实现匹配函数。