|
还不是枚举之后匹配,
事实上枚举对象的数量是由实际运行的对象数量确定.
你用描述事实上也只是根据描述来匹配枚举出来的一系列对象.
打个比方,假如系统现在可以枚举出10个对象,对象仓库有10个对象
直接用描述的话就是不需要经过对象仓库拿具体匹配的属性数据,但是跟系统的匹配次数还是10(假设都很不幸的要最后一次才匹配到)
使用对象仓库的话是先要根据名字在对象仓拿属性数据,这一步需要10(假设都很不幸的要最后一次才匹配到),然后再到枚举列表里查找和匹配,就是整个过程是10+10.是相加,而不是相乘,所以复杂度其实还是同一个几何级的.
所以理论上用描述的话少了到对象仓找属性数据的过程,要比使用对象仓的快,但是影响有限,而且描述和对象仓2种的区别的大小正是跟对象仓的对象多少有关.
定位时间 = 在枚举中匹配的时间 + 取对象属性的时间进行匹配的时间.
这个工具的定位对象的过程跟MFC程序员定位对象的过程应该没区别的(我不知道工具的源码,但是实现这个功能的原理是一样的).先枚举所有窗口和对象.然后根据指定的属性值去遍历枚举到的所有对象,匹配到的话马上返回.
当然,以上都基于一个假设,使用对象仓的方法是根据脚本指定的对象名再到仓库中拿属性值.
对错于否自己想,爱咋D就咋D,爱拿砖头砸就砸吧. |
|