Как получить тексты в списке, используя AutoIt
-
02-10-2019 - |
Вопрос
я использую Autoit. Для создания автоматического установки приложения. Существует диалог, который содержит управление спискомbox, а в списке есть несколько вариантов для пользователя (подробный выбор зависит от машины пользователя. Для некоторых пользователей там может быть только один выбор, для некоторых пользователей могут быть три варианта и т. Д.) Поэтому я хочу получить тексты в списке, чтобы принять решение. Я попробовал следующий код, но он не работал.
; 2223 is the ID of listbox
$txt = ControlGetText("Select Web Site", "", "[ID:2223]")
Msgbox(0, "", $txt)
После выполнения $txt
нулевой.
Так что я должен сделать, чтобы получить тексты в списке?
Вот атрибут списка мониторинга Autoit v3 info:
Class: WindowsForms10.Listbox.app.0.33c0d9d
Решение 4
Что я хочу сделать, это выбрать один из элементов, названных «веб-сайт по умолчанию» в списке, но кажется, что контент списка не может быть получен, поэтому, наконец, я попробовал другой способ:
Сначала я сосредоточен список listbox, а затем выбираю элемент «веб-сайт по умолчанию», отправив «Def»:
ControlFocus($Title, "", "[NAME:lbWebSites]")
; Select the option "Default Web Site", so press "def" to set the desired item.
Send("Def")
Другие советы
Я нашел команду «Отправить», чтобы быть ненадежной по случаю, особенно если ПК заблокирован.
«Controlsend» всегда работал, чтобы получить нажатия клавиш, где я их хочу.
Я написал тест, чтобы проверить, был ли элемент в поле комбо. Там могут быть похожие функции для ящиков списка с использованием GUICOBOBOBOX.AU3.
Func DoesItemExistInComboBox($windowtitle, $windowtext, $comboboxcontrol, $itemtocheck)
$returnvalue = 0
$ComboBoxHandle = ControlGetHandle($windowtitle, $windowtext, $comboboxcontrol)
$ComboBoxArray = _GUICtrlComboBox_GetListArray($ComboBoxHandle)
For $i = 0 TO UBound($ComboBoxArray)-1
If $ComboBoxArray[$i] = $itemtocheck Then
$returnvalue = 1
EndIf
Next
return $returnvalue
EndFunc
Что о:
ControlCommand("My GUI", "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", "item2")