我正在尝试使用Windows UI自动化API解决以下问题:
给出桌面上的一点(x,y),我要确定以下内容的“非常快”(小于100毫秒):
问题1似乎很简单:调用ElementFromPoint(x,y)。对随机点进行简单测试,平均结果大约为20毫秒,具体取决于可视化树中被单击元素的复杂程度和深度。
问题2更复杂:我似乎没有找到使用缓存来加快视觉树浏览速度的方法:
其背后的想法是在执行全局鼠标挂钩期间,在调用下一个挂钩处理程序之前,为GUI上每个被单击元素计算XPath。如果处理程序很慢,则会影响用户体验,最终Windows将取消订阅该处理程序。根据一些读数,如果处理程序花费的时间超过100毫秒,则GUI开始变得缓慢。
我知道Windows不是实时操作系统,使用绝对时间并不适用,因此将100毫秒设为“足够快,用户不会注意到”。
我希望那里的人已经解决了这个问题,并可以提供一些指导。更好的是,我希望对API有内部了解的人能够对计划的可行性或替代方案提供一些指示。
非常感谢!!