有没有办法坚持UIAutomation元素?

时间:2014-10-14 03:36:34

标签: c# microsoft-ui-automation

我在Windows 7(64位)上使用MS UIAutomation。我想知道是否有可能使UIAutomation元素持续存在,如果是这样的话,那么可能是起点。

我唯一想到的是元素的RuntimeID,但问题是某些元素可能没有id。

我想要实现的一个简单场景是,我使用AutomationElement.FromPoint()在屏幕上找到控件的UIAutomation元素,现在我想保留它,以便下次我可以轻松访问它将其“加载”回UIAutomation Element

1 个答案:

答案 0 :(得分:5)

不,您无法从自动化客户端持久保存UIAutomation元素。您需要存储有关该元素的足够信息(AutomationID和上下文是最好的,如果可用的话),以便下次再次找到它。

元素是(可能)某个其他进程中对象的引用,只有其他进程允许它才能生存。当窗口关闭,应用程序关闭等时,元素可能会消失。菜单和弹出窗口等元素可能会非常短暂,并且在客户端收到通知时可能不再存在。