如何使用 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", ""))