Domanda

AutoIt creare un'applicazione auto-install. C'è una finestra di dialogo che contiene un controllo ListBox, e nella casella di riepilogo ci sono alcune scelte per gli utilizzatori (le scelte dettagliate dipende dalla macchina dell'utente. Per alcuni utenti là forse una sola scelta, per alcuni utenti ci possono essere tre scelte, etc.) , quindi voglio ottenere i testi in casella di riepilogo a prendere la decisione. Ho provato il seguente codice, ma non ha funzionato.

; 2223 is the ID of listbox

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

Dopo l'esecuzione $txt è nullo.

Quindi, che cosa devo fare per ottenere i testi in Listbox?

Qui è l'attributo della casella di riepilogo monitorato da AutoIt v3 finestra informazioni :

Class: WindowsForms10.Listbox.app.0.33c0d9d
È stato utile?

Soluzione 4

Quello che voglio fare è quello di selezionare una delle voci denominati "Sito Web predefinito" nella lista, ma sembra che il contenuto elenco non può essere ottenuto, così alla fine ho provato un altro modo:

In un primo momento faccio la casella di riepilogo a fuoco, e poi ho scelto la voce "Sito Web predefinito" con l'invio di "Def":

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

Altri suggerimenti

Ho trovato il comando 'Invia' per essere inaffidabili in alcune occasioni, in particolare se il PC è bloccato.

'ControlSend' ha sempre lavorato per ottenere le sequenze di tasti in cui li voglio.

Ho scritto un test per verificare se un elemento è stato in una casella combinata. Ci potrebbero essere funzioni simili per le caselle di riepilogo utilizzando 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

Che dire:

ControlCommand("My GUI", "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", "item2")
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top