Pregunta

Estoy utilizando AutoIt para crear una aplicación de instalación automática. Hay un cuadro de diálogo que contiene un control ListBox, y en el cuadro de lista hay algunas opciones para el usuario (las opciones detalladas depende de la máquina del usuario. Para algunos usuarios puede haber sólo una opción, para algunos usuarios puede haber tres opciones, etc.) , por lo que quiero conseguir los textos en el cuadro de lista para tomar la decisión. He probado el siguiente código, pero no funcionó.

; 2223 is the ID of listbox

$txt = ControlGetText("Select Web Site", "", "[ID:2223]")
Msgbox(0, "", $txt)

Después de $txt ejecución es nulo.

Entonces, ¿qué debo hacer para obtener los textos en Cuadro de lista?

Este es el atributo del cuadro de lista supervisada por AutoIt v3 ventana de información

Class: WindowsForms10.Listbox.app.0.33c0d9d
¿Fue útil?

Solución 4

Lo que quiero hacer es seleccionar uno de los elementos con nombre "Sitio Web predeterminado" en la lista, pero parece que el contenido de la lista no se puede conseguir, por lo que finalmente he intentado otra manera:

Al principio hago el cuadro de lista se centró, y luego elija el elemento "Sitio Web predeterminado" enviando "Def":

ControlFocus($Title, "", "[NAME:lbWebSites]")
; Select the option "Default Web Site", so press "def" to set the desired item.
Send("Def")

Otros consejos

he encontrado el comando 'Enviar' ser poco fiables en ocasiones, sobre todo si el PC está bloqueado.

'ControlSend' siempre ha trabajado para conseguir las pulsaciones de teclado, donde los quiero.

Me escribió una prueba para comprobar si un elemento se encontraba en un cuadro combinado. Es posible que haya funciones similares de cuadros de lista utilizando GuiComboBox.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

¿Qué hay de:

ControlCommand("My GUI", "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", "item2")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top