上一篇文章中提到了browser link的highlight,今天试了下,发现object都有highlight这个属性,因为又用计算器做了个按钮高亮显示的例子。
要实现计算器所有Button依次高亮显示比较简单,方法同Browser Link的highlight,代码如下:
Systemutil.Run "C:/Windows/System32/calc.exe"
Set Mydes=Description.Create()
Mydes("nativeclass").Value="Button"
Set Buttonnumber=Window("regexpwndtitle:=Calculator").ChildObjects(Mydes)
Buttoncount=Buttonnumber.count
For i=0 to Buttoncount-1
Buttonnumber(i).highlight
Next
以上遍历的顺序是按照计算器Button的index值从小到大依次高亮显示的。
但是如果要实现的只是0~9这10个数字按钮的高亮显示该如何做呢?我们通过分析”计算器”可以发现,计算器”0~9”这个几个Button的 Text属性的值就是0~9,因为我们可以通过一个for循环来实现对Mydes对象的Text属性值进行赋值。这样将Mydes对象即定义为text值为0~9的Button,然后再采用上述相同的方法(代码)即可以实现0~9按钮的高亮显示。代码如下:
Systemutil.Run "C:/Windows/System32/calc.exe"
Set Mydes=Description.Create()
Mydes("nativeclass").Value="Button"
For i=0 to 9
Mydes("text").Value=cstr(i)
Set Buttonnumber=Window("regexpwndtitle:=Calculator").ChildObjects(Mydes)
Buttoncount=Buttonnumber.count
For j=0 to Buttoncount-1
Buttonnumber(j).highlight------------修改成Buttonnumber(0).highlight即可
Next
Next
以上例子使用了双层循环嵌套,实现了从0~9按钮的依次高亮显示。
昨天受到某个匿名用户的提醒,发现设置j的循环是多余的,若将Mydes对象设置成text为i的Button的情况下,Buttoncount只有唯一的值,那就是1,这样,只需要Buttonnumber(0).highlight就可以了,直接将内嵌循环去掉就可以。只需要一层循环即达到了目的。恩,以后的学习过程中要多加注意。