我正在尝试获取另一个应用程序唯一路径的按钮,因为我想保存它,以便在再次运行时关闭应用程序后再次访问它。我对任何可能的方式来保存路径感兴趣,我可以按照该路径自动访问按钮。
我得到了像下面的代码一样的按钮,但我不知道如何保存它的路径(如在日志中)以便再次访问它。
GetCursorPos(&cursorPos);
CComPtr<IUIAutomationElement> elFromPoint;
_automation->ElementFromPoint(cursorPos, &elFromPoint);
最佳答案
UI 自动化中的控件没有绝对的“路径”。您可以从您的元素开始遍历自动化树,直到到达桌面,如下所示:How to walk automation tree ,并在遍历树时创建到该元素的路径。您可以使用此存储的“路径”来查找元素,方法是从桌面向下遍历树或使用 UI 自动化提供的搜索机制来搜索元素的特定属性。请记住,某些控件可能无法确定,因为没有单个属性可以用作控件的 ID(AutomationId 取决于提供程序的实现),在这种情况下,您将需要在存储的元素属性之间实现匹配函数以及您找到的实际元素。
关于c# - 使用 UIAutomation 获取按钮的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57248039/