array in ComboBox schreiben

  • ich bräuchte mal wieder hilfe..
    Ich müsste die SectionNames aus einem Ini file lesen und diese dann in dei Combo einfügen. Wie könnte man das denn anstellen? Wie form ich denn das array so um, damit ich das dann alles in die ComboBox schreiben kann? Oder wie auch immer...

    Spoiler anzeigen
    [autoit]

    $IniConfigs = IniReadSectionNames (@AppDataDir & "\Launcher.ini")
    If @error Then
    MsgBox(4096, "", "Error occured, probably no INI file.")
    Else
    For $i = 1 To $IniConfigs[0]
    GUICtrlSetData($LoadDropDown, $IniConfigs[$i])
    Next
    EndIf

    [/autoit]

    Also das hab ich mir gebastelt. Klappt aber nicht...

  • also wenn ich zu Testzwecken msgbox in der For-schleife benutz, bekomm ich alle einträge richtig angezeigt. Aber wenn ich dann wieder GUICtrlSetData nehm bleibt die Box leer..

    hier mal das ganze Script

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>; Importiert den Inhalt der ButtonConstants.au3 (im AutoIT Ordner unter Includes zu finden) um alle darin enthaltenen Funktionen bereit zu stellen.
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #Region ### START Koda GUI section ###
    $MainGUI = GUICreate("Ein kleines Programm...", 326, 469, -1, -1, -1, 0)
    GUISetIcon("C:\Program Files (x86)\Games\Steam\css.ico")
    GUISetBkColor(0x000000)
    $Label1 = GUICtrlCreateLabel("Bullets TS + CS Script", 40, 8, 350, 43)
    GUICtrlSetFont(-1, 25, 400, 0, "Poplar Std")
    GUICtrlSetColor(-1, 0x00FF00)
    $TS = GUICtrlCreateGroup("", 8, 56, 313, 150)
    GUICtrlSetFont(-1, 8, 400, 0, "Miriam")
    GUICtrlSetColor(-1, 0x00FF00)
    $TSIPInput = GUICtrlCreateInput("85.14.216.103", 48, 80, 89, 19)
    GUICtrlCreateLabel("IP:", 16, 80, 17, 15)
    GUICtrlSetTip(-1, "Die IP des Teamspeak Servers", "IP",1)
    GUICtrlSetColor(-1, 0x00FF00)
    $Label3 = GUICtrlCreateLabel("Port:", 16, 104, 26, 15)
    GUICtrlSetTip(-1, "Port des Teamspeak Servers", "Port",1)
    GUICtrlSetColor(-1, 0x00FF00)
    $TSPortInput = GUICtrlCreateInput("8767", 48, 104, 89, 19)
    $TSChannelInput = GUICtrlCreateList("", 168, 80, 145, 114, BitOR($WS_VSCROLL,$WS_BORDER))
    GUICtrlSetData(-1, "-=[Lobby]=-|-=[Plauderecke]=-|-=[Adminabteil]=-|-=[Zockerstube]=-|-=[Andere Games]=-|Clanbesprechung|Leaderbesprechung|-=[ E S L ]=-|-=[AFK]=-|Memberräume|Music Room !!!")
    GUICtrlSetFont(-1, 9, 400, 0, "Miriam")
    $Label4 = GUICtrlCreateLabel("Login:", 16, 128, 33, 15)
    GUICtrlSetTip(-1, "Dein Loginname", "Login",1)
    GUICtrlSetColor(-1, 0x00FF00)
    $TSLoginInput = GUICtrlCreateInput("", 48, 128, 89, 19)
    $TSPW = GUICtrlCreateLabel("PW:", 16, 152, 23, 15)
    GUICtrlSetTip(-1, "Dein Passwort", "PW", 1)
    GUICtrlSetColor(-1, 0x00FF00)
    $TSPwInput = GUICtrlCreateInput("", 48, 152, 89, 19, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $Label5 = GUICtrlCreateLabel("Nick:", 16, 176, 26, 15)
    GUICtrlSetTip(-1, "Dein Nickname in Teamspeak", "Nick", 1)
    GUICtrlSetColor(-1, 0x00FF00)
    $TSNickInput = GUICtrlCreateInput("", 48, 176, 89, 19)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $CS = GUICtrlCreateGroup("", 8, 224, 313, 177)
    GUICtrlSetColor(-1, 0x00FF00)
    $SteamDirInput = GUICtrlCreateLabel("Steampfad:", 16, 256, 58, 17)
    GUICtrlSetTip(-1, "Der Pfad zu deiner Steam.exe", "Steampfad",1)
    GUICtrlSetColor(-1, 0x00FF00)
    $SteamDirInput = GUICtrlCreateInput("", 80, 256, 193, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $SteamDirButton = GUICtrlCreateButton("...", 275, 254, 41, 25, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Text = GUICtrlCreateLabel(" Teamspeak", 24, 56, 60, 17)
    GUICtrlSetColor(-1, 0x00FF00)
    $Label2 = GUICtrlCreateLabel(" CS:Source", 24, 224, 55, 17)
    GUICtrlSetColor(-1, 0x00FF00)
    $CSServerList = GUICtrlCreateList("", 16, 288, 293, 97, $WS_BORDER)
    GUICtrlSetData(-1, "85.14.216.103:27015 [PB] -=Dust2 Only=-|85.14.216.103:27045 [PB] -=Gungame=-|85.14.216.103:28015 [PB] -=Funserver=-|85.14.216.103:28045 [PB] -=Warserver=-|80.64.134.12:27025 DKT-GunGame-Server http://www.dkteam.at|89.191.69.6:27015 [KH] http://www.kh-clan.com #8|91.121.30.147:27115 Schnetzelbude v2.0 - GunGame 24/7")
    ;GUICtrlSetData(-1, "80.64.134.12:27025 DKT-GunGame-Server http://www.dkteam.at|85.14.216.103:27015 [PB] -=Dust2 Only=-|85.14.216.103:27045 [PB] -=Gungame=-|85.14.216.103:28015 [PB] -=Funserver=-|85.14.216.103:28045 [PB] -=Warserver=-|89.191.69.6:27015 [KH] http://www.kh-clan.com #8|91.121.30.147:27115 Schnetzelbude v2.0 - GunGame 24/7")
    $LoadcfgButton = GUICtrlCreateButton("Load Conifg", 40, 416, 105, 20)
    $PlayButton = GUICtrlCreateButton("Play!", 170, 416, 105, 41)
    $SavecfgButton = GUICtrlCreateButton("Save Config", 40, 440, 105, 20)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Dim $ConfigSpeichernGUI
    Dim $LoadConfigsGUI

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $SteamDirButton; Wird ausgeführt wenn $SteamDirButton (...) gedrückt wird
    $SteamDir = FileOpenDialog ("Steamordner...", "" , "Steam.exe (Steam.exe)"); speichert den Pfad zur Steam.exe in Variable $SteamDir
    GUICtrlSetData ($SteamDirInput, $SteamDir); Schreibt den Pfad der Steam.exe (aus Variablen $SteamDir) in das Inputfeld $SteamDirInput

    [/autoit] [autoit][/autoit] [autoit]

    Case $PlayButton
    ;-------------------TS----------------------------------
    $TSIPInputData = GUICtrlRead ($TSIPInput); liest den Wert aus $TSIPInput (=>Ip des Teamspeakservers) aus und speichert ihn in $TSIPInputData
    $TSPortInputData = GUICtrlRead ($TSPortInput); liest den Wert aus $TSPortInputData (=> Port des Teamspeakservers) aus und speichert ihn in $TSPortInputData
    $TSLoginInputData = GUICtrlRead ($TSLoginInput); liest den Wert aus $TSLoginInputData (=> Loginname auf dem Teamspeakservers) aus und speichert ihn in $TSLoginInput
    $TSPwInputData = GUICtrlRead ($TSPWInput); liest den Wert aus $TSPwInputData (=> Passwort zum Loginname) aus und speichert ihn in $TSPWInput
    $TSNickInputData = GUICtrlRead ($TSNickInput); liest den Wert aus $TSNickInputData (=> Anzuzeigender Name in Teamspeak) aus und speichert ihn in $TSNickInput
    $TSChannelInputData = GUICtrlRead ($TSChannelInput); liest den Wert aus $TSChannelInputData (=> zu joinender Channel) aus und speichert ihn in $TSChannelInput
    $TSLaunchCommand = "teamspeak://" & $TSIPInputData & ":" & $TSPortInputData & "?loginname=" & $TSLoginInputData & "?password=" & $TSPwInputData & "?nickname=" & $TSNickInputData & "?channel=" & $TSChannelInputData ; setzt den String zum Starten von Teamspeak zusammen und speichert ihn in $TSLaunchCommand
    ShellExecute ($TSLaunchCommand) ; führt den String (Startkommando mit Parametern) aus
    ;WinWaitActive ("[CLASS:TMainForm]"); wartet bis ein Fenster der Klasse TMainForm aktiv ist
    Sleep (1000); lässt das skript für 1 sek. einfriern
    ;---------------------CS:S----------------------------
    $SteamDir = GUICtrlRead ($SteamDirInput)
    $CSServerListData = GUICtrlRead ($CSServerList)
    $CSServerIP = StringLeft ( GUICtrlRead ($CSServerList), 19); liest den gewählten Server aus $CSServerList aus und speichert nur die ersten 19 Zeichen (Server IP) in $CSServerIP
    $CSLaunchCommand = $SteamDir& " -applaunch 240 +connect " & $CSServerIP; setzt String zum Starten von CS:S zusammen
    ;MsgBox (1, "CSLaunchCommand", $CSLaunchCommand); Message Box zum Ausgeben des Startstrings (nur zur Kontrolle während der Entwicklung)
    Run ($CSLaunchCommand); führt diesen aus

    [/autoit] [autoit][/autoit] [autoit]

    Case $LoadcfgButton; wird ausgeführt, wenn $LoadcfgButton gedrückt wird
    MsgBox (0, "", "$LoadcfgButton beginnt")
    $LoadConfigsGUI = GUICreate("Configs laden...", 200, 100, 193, 125)
    GUISetBkColor(0x000000)
    GUICtrlCreateCombo("", 32, 40, 137, 25)
    $Label1 = GUICtrlCreateLabel("Gespeicherte Configs:", 48, 8, 108, 17)
    $LoadDropDown = GUICtrlCreateCombo("", 32, 40, 137, 25)
    $IniConfigs = IniReadSectionNames (@AppDataDir & "\GameLauncher.ini")
    If @error Then
    MsgBox(4096, "", "Error occured, probably no INI file.")
    Else
    For $i = 1 To $IniConfigs[0]
    MsgBox ( 0, "", $IniConfigs[$i])
    ;GUICtrlSetData($LoadDropDown, $IniConfigs[$i])
    Next
    EndIf
    $Load = GUICtrlCreateButton("Load", 56, 72, 81, 25, 0)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW, $LoadConfigsGUI)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep (5000000)

    [/autoit] [autoit][/autoit] [autoit]

    $TSIPIniInput = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName, "TSIP", ""); lese Daten aus .ini (siehe oben)
    $TSPortIniInput = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName, "TSPort", "")
    $TSLoginIniInput = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName, "TSLogin", "")
    $TSPwIniInput = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName, "TSPW", "")
    $TSNickIniInput = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName, "TSNick", "")
    $TSChannelIniInput = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName, "TSChannel", "")
    $SteamDirIni = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName, "SteamDir", "")
    $CSServerIniList = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName, "CSServerIP", "")
    GUICtrlSetData ($TSIPInput, $TSIPIniInput); schreibt die ausgelesenen Daten in die entsprechenden Controls
    GUICtrlSetData ($TSPortInput, $TSPortIniInput)
    GUICtrlSetData ($TSLoginInput, $TSLoginIniInput)
    GUICtrlSetData ($TSPWInput, $TSPwIniInput)
    GUICtrlSetData ($TSNickInput, $TSNickIniInput)
    If $TSChannelIniInput <> "error" Then; noch nicht funktionstüchtig...
    GUICtrlSetData ($TSChannelInput, $TSChannelIniInput)
    EndIf
    GUICtrlSetData ($SteamDirInput, $SteamDirIni)
    If $CSServerIniList <> "error" Then; auch noch nicht.
    GUICtrlSetData ($CSServerList, $CSServerIniList)
    Endif
    Case $SavecfgButton
    $ConfigSpeichernGUI = GUICreate("Config speichern", 200, 100, 303, 219)
    GUISetBkColor(0x000000)
    $SaveTitleInput = GUICtrlCreateInput("", 24, 40, 161, 21)
    $Label1 = GUICtrlCreateLabel("Name der Config:", 64, 8, 86, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    $Save = GUICtrlCreateButton("Save", 56, 72, 81, 25, 0)
    GUISetState(@SW_SHOW, $ConfigSpeichernGUI)
    While WinActive ($ConfigSpeichernGUI)
    $MsgSaveGUI = GUIGetMsg()
    If $MsgSaveGUI = $Save Then
    $CfgSaveName = GUICtrlRead ($SaveTitleInput)
    MsgBox (0, "", $CfgSaveName)
    $check1 = IniWrite (@AppDataDir & "\GameLauncher.ini", GUICtrlRead ($SaveTitleInput), "TSIP", GUICtrlRead ($TSIPInput)); lese den Wert aus dem Control aus ("GUICtrlRead ($TSIPInput)") und schreibe ihn in GameLauncher.ini zurück
    $check2 = IniWrite (@AppDataDir & "\GameLauncher.ini", GUICtrlRead ($SaveTitleInput), "TSPort", GUICtrlRead ($TSPortInput))
    $check3 = IniWrite (@AppDataDir & "\GameLauncher.ini", GUICtrlRead ($SaveTitleInput), "TSLogin", GUICtrlRead ($TSLoginInput))
    $check4 = IniWrite (@AppDataDir & "\GameLauncher.ini", GUICtrlRead ($SaveTitleInput), "TSPW", GUICtrlRead ($TSPWInput))
    $check5 = IniWrite (@AppDataDir & "\GameLauncher.ini", GUICtrlRead ($SaveTitleInput), "TSNick", GUICtrlRead ($TSNickInput))
    $check6 = IniWrite (@AppDataDir & "\GameLauncher.ini", GUICtrlRead ($SaveTitleInput), "TSChannel", GUICtrlRead ($TSChannelInput))
    $check7 = IniWrite (@AppDataDir & "\GameLauncher.ini", GUICtrlRead ($SaveTitleInput), "SteamDir", GUICtrlRead ($SteamDirInput))
    $check8 = IniWrite (@AppDataDir & "\GameLauncher.ini", GUICtrlRead ($SaveTitleInput), "CSServerList", GUICtrlRead ($CSServerList))
    GUIDelete ($ConfigSpeichernGUI)
    ;MsgBox (1, "check", $check1 & $check2 & $check3 & $check4 & $check5 & $check6 & $check7 & $check8); gibt eine MessageBox aus in der überprüft werden kann, ob alle Werte in GameLauncher.ini geschrieben werden konnten (erfolgreich = 1)
    EndIf
    WEnd
    Case $GUI_EVENT_CLOSE; wird ausgeführt, wenn das SystemEvent $GUI_EVENT_CLOSE vom GUI gesendet wird (=> X oben in der Leiste des Programms)
    exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]

    die kommentare können falsch sein. Hab die schon vor paar tagen reingeschrieben...

    $CfgLoadName soll dann der ausgewähle Eintrag in der ComboBox sein...

    Einmal editiert, zuletzt von Mertox (6. Oktober 2009 um 18:50)

    • Offizieller Beitrag

    Hast du ein anderes Script?

    C:\Users\MICHAEL\Desktop\PopUp Menu UDF\f.au3(116,73) : WARNING: $CfgLoadName: possibly used before declaration.
    $TSIPIniInput = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\MICHAEL\Desktop\PopUp Menu UDF\f.au3(116,73) : ERROR: $CfgLoadName: undeclared global variable.
    $TSIPIniInput = IniRead (@AppDataDir & "\GameLauncher.ini", $CfgLoadName,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\MICHAEL\Desktop\PopUp Menu UDF\f.au3 - 1 error(s), 1 warning(s)

  • jaja die Variable führ ich dann noch ein. In der wird dann der ausgewählte Eintrag aus der ComboBox gespeichert.... ich bekomm ja aber eben nicht die Box mit den SectionNames gefüllt....

    • Offizieller Beitrag

    Klarer Fehler. Du erstellst 2 Comboboxen an der selben Position.

    Zeile 98

    [autoit]

    GUICtrlCreateCombo("", 32, 40, 137, 25)

    [/autoit]


    muß weg, dann klappert es auch.

    In Zeile 100 erstellst du die 2. Combo.