2015-06-08 2 views
0

У меня есть элемент управления вкладкой в ​​приложении, которое я автоматизирую, но не могу перемещаться между вкладками, как хотелось бы.Как перемещаться по вертикальной вкладке с помощью AutoIt

Я просмотрел документацию для ControlCommand, которая имеет три команды для systabcontrol32. «CurrentTab», «TabRight» и «TabLeft».

У меня есть элемент управления вкладкой, который отображает вкладки по горизонтали, и я могу использовать TabRight/TabLeft для навигации соответственно, но я не могу сделать это в ситуации, когда вкладки являются вертикальными. Команды «TabRight» и «TabLeft» ничего не делают. Однако я попытался настроить фокус и использовать клавиши со стрелками вверх/вниз, но его очень сложно поддерживать.

Я все еще могу использовать «CurrentTab» в элементе управления вкладкой и получить правильный индекс, так же как можно использовать ControlCommand для выбора определенного индекса вкладки?

Я также прочитал this thread, но ни одна из функций для меня тоже не работает. GUICtrlTab. Что я могу сделать?

ответ

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, чтобы убедиться, что вы закончили на правой вкладке:

_Assert($endTabIndex = ControlCommand($window, $text, $tabControl, "CurrentTab", "")) 
Смежные вопросы