每次启动窗口时ControlID都会更改

时间:2013-10-07 09:42:58

标签: autoit

考虑这个AutoIt代码:

WinActivate("Test Window")

Sleep(5000)

ControlClick("Test Window", "", 197128)

我正在测试的窗口中有一个按钮。我编写了一个简单的脚本,使用ControlClick点击按钮。我使用controlID来识别并单击按钮(我使用AutoIt窗口信息来获取controlID)。该脚本有效。问题是每次启动测试窗口时控件ID都会更改。因此,每次启动窗口的新实例时,脚本都不会模拟按钮单击。如何每次按预期进行controlclick工作?

1 个答案:

答案 0 :(得分:4)

对于具有动态控制ID的控件,最好使用高级检测。

可以在帮助文件中看到:

  

可以使用特殊描述作为大多数使用的controlID参数   控制...()函数。该描述可用于通过标识来识别控件   以下属性:

例如,

ControlSend("Untitled - Notepad", "", "[CLASS:Edit; INSTANCE:1]", "This is some text")

或者

ControlClick("My Window", "", "[CLASS:Button; TEXT:Finish; INSTANCE:2]")

不要忘记设置:

Opt("WinTitleMatchMode", 4) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase