Невозможно выбрать значение из выпадающего окна формы с помощью AutoIt - PullRequest
1 голос
/ 16 июня 2011

Используя следующий код

ControlCommand("Test Form", "", "[NAME:ctlMsgQueueCombo]", "ShowDropDown")
ControlSend("Test Form", "", "[NAME:ctlMsgQueueCombo]", "This is my default value (TEST) - First")

or

ControlCommand("Test Form", "", "[NAME:ctlMsgQueueCombo]", "ShowDropDown")
ControlSend("Test Form", "", "[NAME:ctlMsgQueueCombo]", "select", "This is my default value (TEST) - First")

Он выбирает поле со списком, но не выбирает желаемого «это мое значение по умолчанию (ТЕСТ) - Первое» из списка.По сути, он выбирает любое значение, которое начинается с t.Например, первое значение - «TMP».Таким образом, вместо точного соответствия он выбирает любое первое совпадение символов.Как заставить его выбрать точную строку из списка?

Я также пытался использовать следующий код, но, похоже, ничего не работает.

WinWaitActive($title)
$Index = _GUICtrlComboBoxEx_FindStringExact($hcombo, $sText)
_GUICtrlComboBoxEx_SetCurSel($hcombo, $Index)
or following
WinWaitActive($title)
$Index = _GUICtrlComboBox_FindStringExact($hcombo, $sText)
_GUICtrlComboBox_SelectString($hcombo, $Index)

1 Ответ

2 голосов
/ 17 июня 2011

Прямо сейчас вы используете ControlSend с неверными параметрами.Следующая команда отправит строку 'select', и последний параметр будет оценен как 0.

ControlSend("Test Form", "", "[NAME:ctlMsgQueueCombo]", "select", "This is my default value (TEST) - First")

, поскольку он ожидает 1 или 0 в качестве последнего параметра).Излишне говорить, что это не то, что вы хотите.

Вы должны делать что-то вроде SelectString с ControlCommand .Вам не нужно сначала показывать раскрывающийся список:

ControlCommand("Test Form", "", "[NAME:ctlMsgQueueCombo]", "SelectString", "This is my default value (TEST) - First")

Я не смог проверить это, но пока он находит окно и строку верна, все должно быть хорошо.

...