c# - 使用 UIAutomation 获取按钮的路径

标签 c# c++ ui-automation microsoft-ui-automation

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

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

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/

相关文章:

C++ unicode(或 wstring?)等同于 (char)

java - 如何处理过时的元素引用: element is not attached to the page document

java - Selenium Java - 检查 Weblist 元素是否存在

c# - 尝试使用 AJAX 和 JQuery 将 JSON 对象传递给 C#

c# - 高峰期求解器禁忌表的数据结构

c# - 转换 IQueryable 以实现 IAsyncEnumerable

c++ - 使用内存映射文件进行序列化

c++ - 什么时候在 while 循环上使用 for 循环?

ios - 在设备上使用 UIAutomation 进行录制时,它卡在 'Starting Capture...' 上。在模拟器上运行良好

c# - C#'s application configuration "app.config”文件...如何存储集合?