我正在使用AutoIT自动化VB6应用程序,并且遇到了一些问题。
该应用程序有一个“工具箱”窗口,其中包含一个SSTab
控件,该控件在6行中包含18个选项卡。 ThunderRT6CommandButton
类的实例超过100个。我的AutoIT脚本应该可以与特定的按钮进行交互,到目前为止,我一直在使用ControlClick
:
ControlClick($sToolboxes, '', '[CLASS:ThunderRT6CommandButton; INSTANCE:81]')
问题在于,当我更改为其他选项卡并关闭工具箱窗口时,应用程序会记住打开了哪个选项卡。这意味着下次我打开工具箱窗口时,选项卡以不同的顺序启动,并且按钮的所有实例号都已更改。
我什至不能打电话给ControlClick
并指定要单击的按钮的文本,因为这不是唯一的。大约20个按钮被简单地标记为“应用”。
使用 Inspect.exe ,我注意到每个按钮都有一个唯一的AutomationID
,即使在重新排列标签后关闭并重新打开工具箱窗口,该按钮也保持不变。
有什么方法可以在AutoIT中使用其AutomationID单击按钮?
我能想到的唯一的其他解决方法是使AutoIT脚本启动应用程序本身,以便每次脚本运行时工具箱的顺序相同