Inhalt einer Listbox auslesen

  • Hallihallo,

    nachdem ich mehr als 2Tage hier durchs Forum geistere und nix finde, bin ich einfach so dreist und frag direkt. ;)

    Ich habe eine Listbox erstellt und mit Daten gefüllt. Nun möchte ich mit einem Button den Inhalt abfragen und nacheinander die aufgelisteten Programme installieren. Nur leider habe ich in der Hilfe nix Passendes gefunden.

    Vielleicht könnt Ihr mir weiterhelfen.

    WIe kann ich also die Listbox einträge abrufen und dann Installieren lassen? ;(

    LG

    Anbei mein Code zur Hilfe

    Spoiler anzeigen


    #include <GUIListBox.au3>
    #include <GuiConstantsEx.au3>

    Install()

    Func Install()

    Local $add, $mylist, $close, $msg, $listview, $menustate, $menutext, $Progress1


    $DualListDlg = GUICreate("Installscript", 473, 353, 259, 166)
    GUISetIcon("D:\007.ico")


    $ListBox1 = GUICtrlCreateList("", 40, 8, 153, 253)

    GUICtrlSetData(-1, "FreePDF")
    GUICtrlSetData(-1, "Java")


    $add= GUICtrlCreateButton(">", 204, 15, 30, 25, 0)
    $deselect = GUICtrlCreateButton("<", 205, 89, 31, 25, 0)

    GUICtrlSetState(-1, $GUI_DISABLE)
    $deselect_all = GUICtrlCreateButton("<<", 205, 114, 32, 25, 0)

    $mylist = GUICtrlCreateList("", 248, 8, 137, 253)

    $go = GUICtrlCreateButton("Installieren", 392, 57, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "")
    GUISetState(@SW_SHOW)

    $close = GUICtrlCreateButton("Close", 392, 89, 75, 25, 0)

    $Progress1 = GUICtrlCreateProgress(24, 280, 390, 25, 0x01)
    GUICtrlSetData(-1, 0)

    GUISetState(@SW_SHOW)


    GUISetState()

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()

    Select
    Case $msg = $add
    GUICtrlSetData($mylist,GUICtrlRead($ListBox1))

    ;Case $msg = $addall
    ;GUICtrlSetData($mylist, "")

    Case $msg = $deselect_all
    GUICtrlSetData($mylist, "")


    Case $msg = $close

    Exit


    EndSelect


    WEnd
    EndFunc

    Einmal editiert, zuletzt von Mellow (4. Juni 2008 um 21:12)

  • mal kurz in der Hilfe geschaut ...

    um den Namen des markierten Elements auszuwählen

    [autoit]

    $markiert_index = _GUICtrlListBox_GetCurSel($ListBox1)
    $markiert_name = _GUICtrlListBox_GetText($ListBox1, $markiert_index)

    [/autoit]


    dürfte klappen

  • Danke für die schnelle Hilfe. Leider bringt das nicht den gewünschten Erfolg. Funktuioniert ja leider nur wenn was selektiert ist. Standartmäßig ist das ja aber nicht der Fall, wenn ich etwas in meine eigene Liste schicke.

    Versuchen werd ich es dennoch mal über diesen weg. Wenn jmd noch eine andere Idee hat, bin ich immer dafür offen.

    LG

  • ahso, habt dich falsch verstanden, sorry :rolleyes:

    Spoiler anzeigen
    [autoit]

    $anzahl = _GUICtrlListBox_GetCount($ListBox1)
    For $i = 0 to $anzahl -1
    $text = _GUICtrlListBox_GetText($ListBox1, $i)
    MsgBox(0,"Start", "Programm " & $i & " | " & $text)
    Next

    [/autoit]
  • Werd ich auch gleich noch versuchen.

    Spoiler anzeigen

    Case $msg =$go

    GUICtrlSetState($mylist, $GUI_FOCUS)
    Send("{Space}")
    $markiert_index = _GUICtrlListBox_GetCurSel($mylist)
    $markiert_name = _GUICtrlListBox_GetText($mylist, $markiert_index)

    If $markiert_name = "FreePDF" Then Run ("freepdf.exe")

    funktioniert auch.

    Also Super sache! DU :rock: !

    LG