如何使用 AutoIt 导航垂直选项卡控件
How to navigate a vertical tab control using AutoIt
我正在自动化的应用程序中有一个选项卡控件,但无法按照我的意愿在选项卡之间移动。
我查看了 ControlCommand 的文档,其中包含 systabcontrol32
的三个命令。 "CurrentTab"、"TabRight" 和 "TabLeft"。
我有一个水平显示选项卡的选项卡控件,我可以使用 TabRight/TabLeft 进行相应的导航,但在选项卡是垂直的情况下我无法这样做。 "TabRight" 和 "TabLeft" 命令不执行任何操作。但是,我尝试过设置焦点和使用 up/down 方向键,但是很难维护。
我仍然可以在选项卡控件上使用 "CurrentTab",并获得正确的索引,那么有没有办法使用 ControlCommand 来 select 特定的选项卡索引?
我也读过 this thread,但是 GUICtrlTab 函数的 none 也对我有用。我能做什么?
我一直找不到可以执行此操作的函数,但我可以通过使用箭头键来完成此操作。
确定我正在使用 ControlCommand("window", "text", "tabControl", "CurrentTab", "")
的选项卡并将其与我需要访问的选项卡的索引进行比较后,我相应地使用 up/down 箭头键。
我已经为我的选项卡的索引设置了常量,并使用索引的差异来计算我需要移动的次数up/down。
代码示例为:
$currentTab = ControlCommand($window, $text, $tabControl, "CurrentTab", "")
$tabDifference = $currentTab - $endTabIndex
ControlFocus($window, $text, $tabControl)
If $tabDifference > 0 Then
For $i = 1 To $tabDifference Step 1
Send("{UP}")
Next
ElseIf $tabDifference < 0 Then
For $i = -1 To $tabDifference Step -1
Send("{DOWN}")
Next
EndIf
如果 tabDifference 为 0,则我们位于正确的选项卡上。虽然这不是必需的,但我建议添加一个断言语句以确保您在正确的选项卡上结束:
_Assert($endTabIndex = ControlCommand($window, $text, $tabControl, "CurrentTab", ""))
我正在自动化的应用程序中有一个选项卡控件,但无法按照我的意愿在选项卡之间移动。
我查看了 ControlCommand 的文档,其中包含 systabcontrol32
的三个命令。 "CurrentTab"、"TabRight" 和 "TabLeft"。
我有一个水平显示选项卡的选项卡控件,我可以使用 TabRight/TabLeft 进行相应的导航,但在选项卡是垂直的情况下我无法这样做。 "TabRight" 和 "TabLeft" 命令不执行任何操作。但是,我尝试过设置焦点和使用 up/down 方向键,但是很难维护。
我仍然可以在选项卡控件上使用 "CurrentTab",并获得正确的索引,那么有没有办法使用 ControlCommand 来 select 特定的选项卡索引?
我也读过 this thread,但是 GUICtrlTab 函数的 none 也对我有用。我能做什么?
我一直找不到可以执行此操作的函数,但我可以通过使用箭头键来完成此操作。
确定我正在使用 ControlCommand("window", "text", "tabControl", "CurrentTab", "")
的选项卡并将其与我需要访问的选项卡的索引进行比较后,我相应地使用 up/down 箭头键。
我已经为我的选项卡的索引设置了常量,并使用索引的差异来计算我需要移动的次数up/down。
代码示例为:
$currentTab = ControlCommand($window, $text, $tabControl, "CurrentTab", "")
$tabDifference = $currentTab - $endTabIndex
ControlFocus($window, $text, $tabControl)
If $tabDifference > 0 Then
For $i = 1 To $tabDifference Step 1
Send("{UP}")
Next
ElseIf $tabDifference < 0 Then
For $i = -1 To $tabDifference Step -1
Send("{DOWN}")
Next
EndIf
如果 tabDifference 为 0,则我们位于正确的选项卡上。虽然这不是必需的,但我建议添加一个断言语句以确保您在正确的选项卡上结束:
_Assert($endTabIndex = ControlCommand($window, $text, $tabControl, "CurrentTab", ""))