如何使用AutoIt导航垂直选项卡控件

时间:2015-06-08 21:58:26

标签: tabcontrol autoit

我在自动化的应用程序中有一个选项卡控件,但不能按照我的意愿在选项卡之间移动。

我查看了ControlCommand的文档,其中包含systabcontrol32的三个命令。 “CurrentTab”,“TabRight”和“TabLeft”。

我有一个水平显示标签的标签控件,我可以使用TabRight / TabLeft进行相应的导航,但是在标签垂直的情况下我不能这样做。 “TabRight”和“TabLeft”命令不执行任何操作。但是,我尝试设置焦点并使用向上/向下箭头键,但是很难维护。

我仍然可以在选项卡控件上使用“CurrentTab”,并获得正确的索引,那么有没有办法使用ControlCommand来选择特定的选项卡索引?

我还阅读了this thread,但 GUICtrlTab 函数都没有为我工作。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我无法找到可以执行此操作的功能,但我可以通过使用箭头键完成此操作。

一旦我确定了我使用ControlCommand("window", "text", "tabControl", "CurrentTab", "")的标签并将其与我需要访问的标签的索引进行比较,我会相应地使用向上/向下箭头键。

我为我的标签的索引设置了常量,并使用索引的差异来计算我需要向上/向下移动的次数。

代码示例如下:

$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", ""))