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