Как получить тексты в списке, используя AutoIt

StackOverflow https://stackoverflow.com/questions/2762984

  •  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")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top