我正在使用VB6自动化AutoIT应用程序,并遇到了一些问题。
应用程序有一个“工具箱”窗口,其中包含一个SSTab
控件,其中有6个行的18个选项卡。ThunderRT6CommandButton
类有100多个实例。我的AutoIT脚本应该与特定的按钮交互,到目前为止我一直在使用ControlClick
ControlClick($sToolboxes, '', '[CLASS:ThunderRT6CommandButton; INSTANCE:81]')
问题是,当我切换到另一个选项卡并关闭工具箱窗口时,应用程序会记住哪个选项卡是打开的。这意味着,下次打开工具箱窗口时,选项卡将以不同的顺序启动,所有按钮的实例编号都已更改。我甚至不能调用ControlClick
并指定要单击的按钮的文本,因为这并不是唯一的;其中大约20个按钮被简单地标记为'Apply‘。
使用Inspect.exe时,我注意到每个按钮都有一个唯一的AutomationID
,即使在调整选项卡后关闭和重新打开工具箱窗口时,这个值也是恒定的。
我是否可以使用AutomationID在AutoIT?中单击按钮?
我能想到的唯一其他解决办法是让AutoIT脚本启动应用程序本身,这样每次脚本运行时,工具箱都会保持相同的顺序。
发布于 2018-09-05 10:55:15
AutoIT窗口信息工具显示AutomationID
,但将其称为"ID":
我更改了脚本,使其包含ID:##
,而不是实例号,它起作用了:
ControlClick($sToolboxes, '', '[CLASS:ThunderRT6CommandButton; ID:245]')
https://stackoverflow.com/questions/52182777
复制相似问题