Kleine Fehler. Haupt-GUI und Favoriten löschen.

  • Hallo Mitglieder.

    Ich habe eben bemerkt, dass mein Launcher doch noch einige Bugs hat.

    Der erste Bug, wohl auch der kleinste, ist, dass er nach aufrufen der _favdel(), die Haupt-GUI nicht schliessen will.
    Der zweite Bug ist, dass in der ComboBox von _favdel() nichts angezeigt wird.

    Ich habe bei dem ersten Bug, schon fasst alles durchsucht, doch ich finde ihn einfach nicht.
    Bein zweiten, bin ich nur auf die Lösung gekommen, die Funktion zum auslesen seperat in _favdel() zu schreiben.

    Hier mein Script:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Icon.ico
    #AutoIt3Wrapper_outfile=Launcher_New.exe
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #Region
    #EndRegion
    ; ================================;
    ; Minecraft Launcher
    ; Made by Aldeos
    ; © 2011 Aldeos.de
    ; ================================;

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

    ;====Includes====;
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    If Not FileExists(@AppDataDir & "\.minecraft") Then DirCreate(@AppDataDir & "\.minecraft\")
    If Not FileExists(@AppDataDir & "\.minecraft\Splash.jpg") Then FileInstall("Splash.jpg", @AppDataDir & "\.minecraft\Splash.jpg") ;- Fragt ab, ob Splash.bmp existiert, falls nicht installiert er diese Datei.
    If Not FileExists(@AppDataDir & "\.minecraft\Minecraft.exe") Then FileInstall("Minecraft.exe", @AppDataDir & "\.minecraft\Minecraft.exe") ;- Fragt ab, ob Minecraft.exe existiert, falls nicht installiert er diese Datei.

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

    Global $aFav

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

    ;====GUI====;
    $GUI = GUICreate("Minecraft Launcher by Aldeos.de", 401, 251, 273, 176) ;- Erstellt die GUI.
    $DATA = GUICtrlCreateMenu("Datei")
    $EXIT = GUICtrlCreateMenuItem("Beenden", $DATA)
    $SERVER = GUICtrlCreateMenu("Server")
    $ADD = GUICtrlCreateMenuItem("Server hinzufügen", $SERVER)
    $DELETE = GUICtrlCreateMenuItem("Server entfernen", $SERVER)
    $NAME = GUICtrlCreateLabel("Login:", 104, 42, 33, 17) ;- Erstellt den Label "Login:".
    $NAME_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME", "") ;- Liest aus der Launcher.ini die Wert NAME aus der Sektion Config.
    $NAME_INPUT = GUICtrlCreateInput($NAME_READ, 160, 40, 121, 21) ;- Erstellt ein Eingabefeld für den Namen.
    $PASSWORD = GUICtrlCreateLabel("Passwort:", 104, 70, 50, 17) ;- Erstellt den Label "Password:".
    $PASS_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS", "");- Liest aus der Launcher.ini die Wert PASS aus der Sektion Config.
    $PASSWORD_INPUT = GUICtrlCreateInput($PASS_READ, 160, 68, 121, 21, $ES_PASSWORD);- Erstellt ein Eingabefeld für das Password.
    $IP = GUICtrlCreateLabel("Server:", 104, 98, 50, 17) ;- Erstellt den Label "IP:".
    $IP_INPUT = GUICtrlCreateCombo("", 160, 96, 121, 25) ;-;- Erstellt ein Eingabefeld für die IP.
    $START = GUICtrlCreateButton("Start", 194, 128, 89, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Start" zum starten des Spieles.
    $UPDATE = GUICtrlCreateButton("Update", 104, 128, 81, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Update" zum überprüfen auf Updates.
    $IMG = GUICtrlCreatePic(@AppDataDir & "\.minecraft\Splash.jpg", 0, 0, 400, 230, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $DL_PROG = GUICtrlCreateProgress(16, 173, 369, 25)
    $DL_LAB = GUICtrlCreateLabel("", 24, 204, 4, 4)
    $UPDATE = GUICtrlCreateButton("Update", 104, 128, 81, 25, $WS_GROUP)
    $VERSION = GUICtrlCreateLabel("V. 1.0", 352, 200, 32, 17)
    GUISetState(@SW_SHOW)
    _IniRead()

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

    ;====Variable====;
    $ServerINI = @TempDir & "\serverversion.ini"
    $LocalINI = @AppDataDir & "\.minecraft\Version.ini"
    $upd_url = IniRead($LocalINI, "File", "URL", "")
    $sString = BinaryToString(InetRead('http://update.aldeos.de/mc/serverversion.ini'))
    $hFile = FileOpen($ServerINI, 2)
    FileWrite($hFile, $sString)
    FileClose($hFile)
    FileDelete($hFile)
    $Ini1 = IniRead($ServerINI, "Update", "VERSION", "")
    $Ini2 = IniRead($LocalINI, "Update", "VERSION", "")
    $url = IniRead($ServerINI, "File", "URL", "")
    $NAME = IniRead($ServerINI, "File", "NAME", "")
    $size = InetGetSize($url & $NAME)

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

    ;====Funktionen====;
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($GUI)
    Exit
    Case $EXIT
    GUIDelete($GUI)
    Exit
    Case $IP_INPUT
    $sUrlName = GUICtrlRead($IP_INPUT)
    $sURL = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", $sUrlName, "")
    Case $START
    _startcheck()
    Case $UPDATE
    _updatecheck()
    Case $ADD
    _favadd()
    _IniRead() ;<======================
    Case $DELETE
    _favdel()
    _IniRead();<======================
    EndSwitch
    WEnd

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

    Func _IniRead() ;<<================ ganze Func
    $aFav = IniReadSection(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten")
    ;- Liest aus der Launcher.ini die Favoriten
    If IsArray($aFav) Then
    GUICtrlSetData($IP_INPUT, "", "")
    ;- _ArrayDisplay($aFav,"Favoriten")
    For $i = 1 To $aFav[0][0]
    GUICtrlSetData($IP_INPUT, $aFav[$i][0])
    Next
    EndIf
    EndFunc ;==>_IniRead

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

    Func _run()
    If Not @error Then
    $NAME = GUICtrlRead($NAME_INPUT)
    $PASS = GUICtrlRead($PASSWORD_INPUT)
    $IP = GUICtrlRead($IP_INPUT)
    $PASS_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS", "")
    ShellExecute(@AppDataDir & "\.minecraft\Minecraft.exe", $NAME & " " & $PASS_READ & " " & $sURL) ;- Startet die Datei "Minecraft.exe" mit den folgenden Parametern, $NAME_READ, $PASS_READ und $IP_READ.
    If Not @error Then
    IniWriteSection(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME=" & GUICtrlRead($NAME_INPUT) & @LF & "PASS=" & GUICtrlRead($PASSWORD_INPUT) & @LF & "IP=" & GUICtrlRead($IP_INPUT)) ;- Schreit $NAME_INPUT, $PASSWORD_INPUT und $IP_INPUT in die INI.
    Exit
    EndIf
    EndIf
    EndFunc ;==>_run

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

    Func _updatecheck()
    If $Ini1 <> $Ini2 Then
    $iMsgBoxAnswer = MsgBox(52, "Aktualisierung gefunden!", "Es wurde eine Aktualisierung gefunden." & @CRLF & "Möchten Sie diese herunterladen?")
    Select
    Case $iMsgBoxAnswer = 6
    $download = InetGet($url & $NAME, $NAME, 1, 1)
    Do
    $info = InetGetInfo($download, 0)
    $percent = (100 / $size) * $info
    GUICtrlSetData($DL_PROG, $percent)
    $Old = GUICtrlRead($DL_LAB)
    $New = "Geladen:" & Round(($info / 1024) / 1024, 1) & " / " & Round(($size / 1024) / 1024, 1) & "MB"
    If $Old <> $New Then GUICtrlSetData($DL_LAB, $New)
    Until $percent >= 100
    IniWrite($LocalINI, "Update", "VERSION", $Ini1)
    _Update()
    Exit
    Case $iMsgBoxAnswer = 7
    Exit
    EndSelect
    EndIf
    EndFunc ;==>_updatecheck

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

    Func _startcheck()
    If $Ini1 <> $Ini2 Then
    MsgBox(48, "Version nicht aktuell!", "Ihre Version ist nicht aktuell." & @CRLF & "Bitte aktualisieren sie ihren Launcher.")
    ElseIf $Ini1 = $Ini2 Then
    _run()
    EndIf
    EndFunc ;==>_startcheck

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

    Func _Update($iDelay = 0)
    Local $sCmdFile
    FileDelete(@TempDir & "scratch.bat")
    $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
    & ':loop' & @CRLF _
    & 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
    & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
    & 'ren ' & @ScriptDir & '\Launcher_New.exe Launcher.exe' & @CRLF _
    & 'start ' & @ScriptDir & '\Launcher.exe' & @CRLF _
    & 'del ' & @TempDir & 'scratch.bat'
    FileWrite(@TempDir & "scratch.bat", $sCmdFile)
    Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)
    Exit
    EndFunc ;==>_Update

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

    Func _favadd()
    $FAV_ADD = GUICreate("Hinzufügen", 201, 122, 192, 124)
    $NAME = GUICtrlCreateInput("", 48, 24, 145, 21)
    $IP = GUICtrlCreateInput("", 48, 56, 145, 21)
    $LAB_NAME = GUICtrlCreateLabel("Name:", 8, 26, 35, 17)
    $LAB_IP = GUICtrlCreateLabel("IP:", 24, 58, 17, 17)
    $ADD_SERVER = GUICtrlCreateButton("Hinzufügen", 56, 88, 89, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $ADD_SERVER
    IniWrite(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", GUICtrlRead($NAME), GUICtrlRead($IP))
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($FAV_ADD)
    EndFunc ;==>_favadd

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

    Func _favdel()
    $FAV_DEL = GUICreate("Entfernen", 194, 99, 192, 124)
    $FAV_READ = IniReadSection(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten")
    $SELECT = GUICtrlCreateCombo($FAV_READ, 16, 24, 161, 25)
    $DELETE = GUICtrlCreateButton("Entfernen", 56, 56, 81, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $aFav = IniReadSection(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten")
    ;- Liest aus der Launcher.ini die Favoriten
    If IsArray($aFav) Then
    GUICtrlSetData($SELECT, "", "")
    ;- _ArrayDisplay($aFav,"Favoriten")
    For $i = 1 To $aFav[0][0]
    GUICtrlSetData($SELECT, $aFav[$i][0])
    Next
    EndIf

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($FAV_DEL)
    Case $DELETE
    IniDelete(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", GUICtrlRead($SELECT))
    EndSwitch
    WEnd
    GUIDelete($FAV_DEL)
    EndFunc ;==>_favdel

    [/autoit]

    Einmal editiert, zuletzt von Kazuto (15. März 2011 um 13:57)

  • Du sorgst nicht dafür, das du die Schleifen in _favadd() und _favdel() ordentlich verlässt.

    [autoit]

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($FAV_DEL)
    ExitLoop

    [/autoit]


    Ausserdem könntest du deine _IniRead() Funktion umschreiben. Übergib als Parameter eine Combobox ID.
    Dann kannst du mit der selben Funktion auch die Combox in _favdel() aktualisieren, nachdem ein Eintrag gelöscht wurde.

    edit: Ausserdem ist Zeile 199 überflüssig. Erstell die Combo ohne Inhalt. In 203 liest du die Section ja nochmal ein und durchläufst dann die Schleife zum befüllen.

  • Danke i2c.
    Das mit den GUI's ist nun behoben, jedoch kann ich die GUI in _favdel() nur einmal aufrufen, danach wird sie nicht mehr gestartet.

    Quellcode
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Icon.ico
    #AutoIt3Wrapper_outfile=Launcher_New.exe
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #Region
    #EndRegion
    ; ================================;
    ; Minecraft Launcher
    ; Made by Aldeos
    ; © 2011 Aldeos.de
    ; ================================;

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

    ;====Includes====;
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    If Not FileExists(@AppDataDir & "\.minecraft") Then DirCreate(@AppDataDir & "\.minecraft\")
    If Not FileExists(@AppDataDir & "\.minecraft\Splash.jpg") Then FileInstall("Splash.jpg", @AppDataDir & "\.minecraft\Splash.jpg") ;- Fragt ab, ob Splash.bmp existiert, falls nicht installiert er diese Datei.
    If Not FileExists(@AppDataDir & "\.minecraft\Minecraft.exe") Then FileInstall("Minecraft.exe", @AppDataDir & "\.minecraft\Minecraft.exe") ;- Fragt ab, ob Minecraft.exe existiert, falls nicht installiert er diese Datei.

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

    Global $aFav

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

    ;====GUI====;
    $GUI = GUICreate("Minecraft Launcher by Aldeos.de", 401, 251, 273, 176) ;- Erstellt die GUI.
    $DATA = GUICtrlCreateMenu("Datei")
    $EXIT = GUICtrlCreateMenuItem("Beenden", $DATA)
    $SERVER = GUICtrlCreateMenu("Server")
    $ADD = GUICtrlCreateMenuItem("Server hinzufügen", $SERVER)
    $DELETE = GUICtrlCreateMenuItem("Server entfernen", $SERVER)
    $NAME = GUICtrlCreateLabel("Login:", 104, 42, 33, 17) ;- Erstellt den Label "Login:".
    $NAME_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME", "") ;- Liest aus der Launcher.ini die Wert NAME aus der Sektion Config.
    $NAME_INPUT = GUICtrlCreateInput($NAME_READ, 160, 40, 121, 21) ;- Erstellt ein Eingabefeld für den Namen.
    $PASSWORD = GUICtrlCreateLabel("Passwort:", 104, 70, 50, 17) ;- Erstellt den Label "Password:".
    $PASS_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS", "");- Liest aus der Launcher.ini die Wert PASS aus der Sektion Config.
    $PASSWORD_INPUT = GUICtrlCreateInput($PASS_READ, 160, 68, 121, 21, $ES_PASSWORD);- Erstellt ein Eingabefeld für das Password.
    $IP = GUICtrlCreateLabel("Server:", 104, 98, 50, 17) ;- Erstellt den Label "IP:".
    $IP_INPUT = GUICtrlCreateCombo("", 160, 96, 121, 25) ;-;- Erstellt ein Eingabefeld für die IP.
    $START = GUICtrlCreateButton("Start", 194, 128, 89, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Start" zum starten des Spieles.
    $UPDATE = GUICtrlCreateButton("Update", 104, 128, 81, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Update" zum überprüfen auf Updates.
    $IMG = GUICtrlCreatePic(@AppDataDir & "\.minecraft\Splash.jpg", 0, 0, 400, 230, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $DL_PROG = GUICtrlCreateProgress(16, 173, 369, 25)
    $DL_LAB = GUICtrlCreateLabel("", 24, 204, 4, 4)
    $UPDATE = GUICtrlCreateButton("Update", 104, 128, 81, 25, $WS_GROUP)
    $VERSION = GUICtrlCreateLabel("V. 1.0", 352, 200, 32, 17)
    GUISetState(@SW_SHOW)
    _IniRead()

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

    ;====Variable====;
    $ServerINI = @TempDir & "\serverversion.ini"
    $LocalINI = @AppDataDir & "\.minecraft\Version.ini"
    $upd_url = IniRead($LocalINI, "File", "URL", "")
    $sString = BinaryToString(InetRead('http://update.aldeos.de/mc/serverversion.ini'))
    $hFile = FileOpen($ServerINI, 2)
    FileWrite($hFile, $sString)
    FileClose($hFile)
    FileDelete($hFile)
    $Ini1 = IniRead($ServerINI, "Update", "VERSION", "")
    $Ini2 = IniRead($LocalINI, "Update", "VERSION", "")
    $url = IniRead($ServerINI, "File", "URL", "")
    $NAME = IniRead($ServerINI, "File", "NAME", "")
    $size = InetGetSize($url & $NAME)

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

    ;====Funktionen====;
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($GUI)
    Exit
    Case $EXIT
    GUIDelete($GUI)
    Exit
    Case $IP_INPUT
    $sUrlName = GUICtrlRead($IP_INPUT)
    $sURL = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", $sUrlName, "")
    Case $START
    _startcheck()
    Case $UPDATE
    _updatecheck()
    Case $ADD
    _favadd()
    _IniRead() ;<======================
    Case $DELETE
    _favdel()
    _IniRead();<======================
    EndSwitch
    WEnd

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

    Func _IniRead() ;<<================ ganze Func
    $aFav = IniReadSection(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten")
    ;- Liest aus der Launcher.ini die Favoriten
    If IsArray($aFav) Then
    GUICtrlSetData($IP_INPUT, "", "")
    ;- _ArrayDisplay($aFav,"Favoriten")
    For $i = 1 To $aFav[0][0]
    GUICtrlSetData($IP_INPUT, $aFav[$i][0])
    Next
    EndIf
    EndFunc ;==>_IniRead

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

    Func _run()
    If Not @error Then
    $NAME = GUICtrlRead($NAME_INPUT)
    $PASS = GUICtrlRead($PASSWORD_INPUT)
    $IP = GUICtrlRead($IP_INPUT)
    $PASS_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS", "")
    ShellExecute(@AppDataDir & "\.minecraft\Minecraft.exe", $NAME & " " & $PASS_READ & " " & $sURL) ;- Startet die Datei "Minecraft.exe" mit den folgenden Parametern, $NAME_READ, $PASS_READ und $IP_READ.
    If Not @error Then
    IniWriteSection(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME=" & GUICtrlRead($NAME_INPUT) & @LF & "PASS=" & GUICtrlRead($PASSWORD_INPUT) & @LF & "IP=" & GUICtrlRead($IP_INPUT)) ;- Schreit $NAME_INPUT, $PASSWORD_INPUT und $IP_INPUT in die INI.
    Exit
    EndIf
    EndIf
    EndFunc ;==>_run

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

    Func _updatecheck()
    If $Ini1 <> $Ini2 Then
    $iMsgBoxAnswer = MsgBox(52, "Aktualisierung gefunden!", "Es wurde eine Aktualisierung gefunden." & @CRLF & "Möchten Sie diese herunterladen?")
    Select
    Case $iMsgBoxAnswer = 6
    $download = InetGet($url & $NAME, $NAME, 1, 1)
    Do
    $info = InetGetInfo($download, 0)
    $percent = (100 / $size) * $info
    GUICtrlSetData($DL_PROG, $percent)
    $Old = GUICtrlRead($DL_LAB)
    $New = "Geladen:" & Round(($info / 1024) / 1024, 1) & " / " & Round(($size / 1024) / 1024, 1) & "MB"
    If $Old <> $New Then GUICtrlSetData($DL_LAB, $New)
    Until $percent >= 100
    IniWrite($LocalINI, "Update", "VERSION", $Ini1)
    _Update()
    Exit
    Case $iMsgBoxAnswer = 7
    Exit
    EndSelect
    EndIf
    EndFunc ;==>_updatecheck

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

    Func _startcheck()
    If $Ini1 <> $Ini2 Then
    MsgBox(48, "Version nicht aktuell!", "Ihre Version ist nicht aktuell." & @CRLF & "Bitte aktualisieren sie ihren Launcher.")
    ElseIf $Ini1 = $Ini2 Then
    _run()
    EndIf
    EndFunc ;==>_startcheck

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

    Func _Update($iDelay = 0)
    Local $sCmdFile
    FileDelete(@TempDir & "scratch.bat")
    $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
    & ':loop' & @CRLF _
    & 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
    & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
    & 'ren ' & @ScriptDir & '\Launcher_New.exe Launcher.exe' & @CRLF _
    & 'start ' & @ScriptDir & '\Launcher.exe' & @CRLF _
    & 'del ' & @TempDir & 'scratch.bat'
    FileWrite(@TempDir & "scratch.bat", $sCmdFile)
    Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)
    Exit
    EndFunc ;==>_Update

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

    Func _favadd()
    $FAV_ADD = GUICreate("Hinzufügen", 201, 122, 192, 124)
    $NAME = GUICtrlCreateInput("", 48, 24, 145, 21)
    $IP = GUICtrlCreateInput("", 48, 56, 145, 21)
    $LAB_NAME = GUICtrlCreateLabel("Name:", 8, 26, 35, 17)
    $LAB_IP = GUICtrlCreateLabel("IP:", 24, 58, 17, 17)
    $ADD_SERVER = GUICtrlCreateButton("Hinzufügen", 56, 88, 89, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $ADD_SERVER
    IniWrite(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", GUICtrlRead($NAME), GUICtrlRead($IP))
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($FAV_ADD)
    EndFunc ;==>_favadd

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

    Func _favdel()
    $FAV_DEL = GUICreate("Entfernen", 194, 99, 192, 124)
    $SELECT = GUICtrlCreateCombo("", 16, 24, 161, 25)
    $DELETE = GUICtrlCreateButton("Entfernen", 56, 56, 81, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $aFav = IniReadSection(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten")
    ;- Liest aus der Launcher.ini die Favoriten
    If IsArray($aFav) Then
    GUICtrlSetData($SELECT, "", "")
    ;- _ArrayDisplay($aFav,"Favoriten")
    For $i = 1 To $aFav[0][0]
    GUICtrlSetData($SELECT, $aFav[$i][0])
    Next
    EndIf

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $DELETE
    IniDelete(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", GUICtrlRead($SELECT))
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($FAV_DEL)
    EndFunc ;==>_favdel

    [/autoit]

    Wie meinst du das, eine ComboBox ID ausgeben?
    Bzw. wo?

  • Hallo DaisukeHideki,

    du überschreibst in der func _favdel die Variable $Delete (welche vorher die ID des Menüpunktes enthält) mit der ID des Buuttons zum Löschen. Also einfach eines von beiden umbennen, dann klappt es:

    [autoit]

    Func _favdel()
    $FAV_DEL = GUICreate("Entfernen", 194, 99, 192, 124)
    $SELECT = GUICtrlCreateCombo("", 16, 24, 161, 25)
    $btnDELETE = GUICtrlCreateButton("Entfernen", 56, 56, 81, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $aFav = IniReadSection(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten")
    ;- Liest aus der Launcher.ini die Favoriten
    If IsArray($aFav) Then
    GUICtrlSetData($SELECT, "", "")
    ;- _ArrayDisplay($aFav,"Favoriten")
    For $i = 1 To $aFav[0][0]
    GUICtrlSetData($SELECT, $aFav[$i][0])
    Next
    EndIf

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $btnDELETE
    IniDelete(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", GUICtrlRead($SELECT))
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($FAV_DEL)
    EndFunc ;==>_favdel

    [/autoit]

    mfg autoBert

  • Danke, autoBert.

    Ich habe nicht bedacht, dass ich eine $DELETE zweimal im Script definiert habe.

    Ich jetzt jedoch einen neuen Bug gefunden.
    Mein Updater zeigt zwar, beim Klick auf $START, an, dass die Version nicht aktuell ist, was ein Zeichen dafür ist, dass er die serverversion.ini auf meinen neuen Webhost ausliest.
    Jedoch wenn ich auf dem Button $UPDATE drücke, passiert nichts.
    Die Version 1.0 meines Scripts aktualisiert aber, dabei ist in beiden Scripts die _updatecheck() gleich geblieben.

    Version 1.0
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Icon.ico
    #AutoIt3Wrapper_outfile=Launcher.exe
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #Region
    #EndRegion
    ; ================================;
    ; Minecraft Launcher
    ; Made by Aldeos
    ; © 2011 Aldeos.de
    ; ================================;

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

    ;====Includes====;
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    If Not FileExists(@AppDataDir & "\.minecraft\Splash.jpg") Then FileInstall("Splash.jpg", @AppDataDir & "\.minecraft\Splash.jpg") ;- Fragt ab, ob Splash.bmp existiert, falls nicht installiert er diese Datei.
    If Not FileExists(@AppDataDir & "\.minecraft\Minecraft.exe") Then FileInstall("Minecraft.exe", @AppDataDir & "\.minecraft\Minecraft.exe") ;- Fragt ab, ob Minecraft.exe existiert, falls nicht installiert er diese Datei.

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

    ;====GUI====;
    $GUI = GUICreate("Minecraft Launcher by Aldeos.de", 401, 231, 273, 176) ;- Erstellt die GUI.
    $NAME = GUICtrlCreateLabel("Login:", 104, 42, 33, 17) ;- Erstellt den Label "Login:".
    $NAME_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME", "") ;- Liest aus der Launcher.ini die Wert NAME aus der Sektion Config.
    $NAME_INPUT = GUICtrlCreateInput($NAME_READ, 160, 40, 121, 21) ;- Erstellt ein Eingabefeld für den Namen.
    $PASSWORD = GUICtrlCreateLabel("Password:", 104, 70, 53, 17) ;- Erstellt den Label "Password:".
    $PASS_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS", "");- Liest aus der Launcher.ini die Wert PASS aus der Sektion Config.
    $PASSWORD_INPUT = GUICtrlCreateInput($PASS_READ, 160, 68, 121, 21, $ES_PASSWORD);- Erstellt ein Eingabefeld für das Password.
    $IP = GUICtrlCreateLabel("IP:", 104, 98, 17, 17) ;- Erstellt den Label "IP:".
    $IP_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "IP", "");- Liest aus der Launcher.ini die Wert IP aus der Sektion Config.
    $IP_INPUT = GUICtrlCreateInput($IP_READ, 160, 96, 121, 21);- Erstellt ein Eingabefeld für die IP.
    $START = GUICtrlCreateButton("Start", 194, 128, 89, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Start" zum starten des Spieles.
    $UPDATE = GUICtrlCreateButton("Update", 104, 128, 81, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Update" zum überprüfen auf Updates.
    $IMG = GUICtrlCreatePic(@AppDataDir & "\.minecraft\Splash.jpg", 0, 0, 400, 230, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) ;- Erstellt das Hintergrundbild für die GUI.
    $DL_PROG = GUICtrlCreateProgress(16, 173, 369, 25) ;- Progressbar für den Download.
    $DL_LAB = GUICtrlCreateLabel("", 24, 204, 100, 12) ;- Label für den Download.
    $VERSION = GUICtrlCreateLabel("V. 1.0", 352, 200, 32, 17)
    GUISetState(@SW_SHOW)

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

    ;====Variable====;
    $ServerINI = @TempDir & "\serverversion.ini"
    $LocalINI = @AppDataDir & "\.minecraft\Version.ini"
    $upd_url = IniRead($LocalINI, "File", "URL", "")
    $sString = BinaryToString(InetRead('http://update.aldeos.de/mc/serverversion.ini'))
    $hFile = FileOpen($ServerINI, 2)
    FileWrite($hFile, $sString)
    FileClose($hFile)
    FileDelete($hFile)
    $Ini1 = IniRead($ServerINI, "Update", "VERSION", "")
    $Ini2 = IniRead($LocalINI, "Update", "VERSION", "")
    $url = IniRead($ServerINI, "File", "URL", "")
    $NAME = IniRead($ServerINI, "File", "NAME", "")
    $size = InetGetSize($url & $NAME)

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

    ;====Funktionen====;
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $START
    _startcheck()
    Case $UPDATE
    _updatecheck()
    EndSwitch
    WEnd

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

    Func _run()
    If Not @error Then
    $NAME = GUICtrlRead($NAME_INPUT)
    $PASS = GUICtrlRead($PASSWORD_INPUT)
    $IP = GUICtrlRead($IP_INPUT)
    $PASS_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS", "")
    ShellExecute(@AppDataDir & "\.minecraft\Minecraft.exe", $NAME & " " & $PASS_READ & " " & $IP) ;- Startet die Datei "Minecraft.exe" mit den folgenden Parametern, $NAME_READ, $PASS_READ und $IP_READ.
    If Not @error Then
    IniWriteSection(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME=" & GUICtrlRead($NAME_INPUT) & @LF & "PASS=" & GUICtrlRead($PASSWORD_INPUT) & @LF & "IP=" & GUICtrlRead($IP_INPUT)) ;- Schreit $NAME_INPUT, $PASSWORD_INPUT und $IP_INPUT in die INI.
    Exit
    EndIf
    EndIf
    EndFunc ;==>_run

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

    Func _updatecheck()
    If $Ini1 <> $Ini2 Then
    $iMsgBoxAnswer = MsgBox(52, "Aktualisierung gefunden!", "Es wurde eine Aktualisierung gefunden." & @CRLF & "Möchten Sie diese herunterladen?")
    Select
    Case $iMsgBoxAnswer = 6
    $download = InetGet($url & $NAME, $NAME, 1, 1)
    Do
    $info = InetGetInfo($download, 0)
    $percent = (100 / $size) * $info
    GUICtrlSetData($DL_PROG, $percent)
    $Old = GUICtrlRead($DL_LAB)
    $New = "Geladen:" & Round(($info / 1024) / 1024, 1) & " / " & Round(($size / 1024) / 1024, 1) & "MB"
    If $Old <> $New Then GUICtrlSetData($DL_LAB, $New)
    Until $percent >= 100
    IniWrite($LocalINI, "Update", "VERSION", $Ini1)
    _Update()
    Exit
    Case $iMsgBoxAnswer = 7
    Exit
    EndSelect
    EndIf
    EndFunc ;==>_updatecheck

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

    Func _startcheck()
    If $Ini1 <> $Ini2 Then
    MsgBox(48, "Version nicht aktuell!", "Ihre Version ist nicht aktuell." & @CRLF & "Bitte aktualisieren sie ihren Clienten.")
    ElseIf $Ini1 = $Ini2 Then
    _run()
    EndIf
    EndFunc ;==>_startcheck

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

    Func _Update($iDelay = 0)
    Local $sCmdFile
    FileDelete(@TempDir & "scratch.bat")
    $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
    & ':loop' & @CRLF _
    & 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
    & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
    & 'ren ' & @ScriptDir & '\Launcher_New.exe Launcher.exe' & @CRLF _
    & 'start ' & @ScriptDir & '\Launcher.exe' & @CRLF _
    & 'del ' & @TempDir & 'scratch.bat'
    FileWrite(@TempDir & "scratch.bat", $sCmdFile)
    Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)
    exit
    EndFunc

    [/autoit]
    Version 1.1
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Icon.ico
    #AutoIt3Wrapper_outfile=Launcher.exe
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #Region
    #EndRegion
    ; ================================;
    ; Minecraft Launcher
    ; Made by Aldeos
    ; © 2011 Aldeos.de
    ; ================================;

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

    ;====Includes====;
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    If Not FileExists(@AppDataDir & "\.minecraft") Then DirCreate(@AppDataDir & "\.minecraft\")
    If Not FileExists(@AppDataDir & "\.minecraft\Splash.jpg") Then FileInstall("Splash.jpg", @AppDataDir & "\.minecraft\Splash.jpg") ;- Fragt ab, ob Splash.bmp existiert, falls nicht installiert er diese Datei.
    If Not FileExists(@AppDataDir & "\.minecraft\Minecraft.exe") Then FileInstall("Minecraft.exe", @AppDataDir & "\.minecraft\Minecraft.exe") ;- Fragt ab, ob Minecraft.exe existiert, falls nicht installiert er diese Datei.

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

    Global $aFav

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

    ;====GUI====;
    $GUI = GUICreate("Minecraft Launcher by Aldeos.de", 401, 251, 273, 176) ;- Erstellt die GUI.
    $DATA = GUICtrlCreateMenu("Datei")
    $EXIT = GUICtrlCreateMenuItem("Beenden", $DATA)
    $SERVER = GUICtrlCreateMenu("Server")
    $ADD = GUICtrlCreateMenuItem("Server hinzufügen", $SERVER)
    $DELETE = GUICtrlCreateMenuItem("Server entfernen", $SERVER)
    $LOGIN = GUICtrlCreateLabel("Login:", 104, 42, 33, 17) ;- Erstellt den Label "Login:".
    $LOGIN_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME", "") ;- Liest aus der Launcher.ini die Wert NAME aus der Sektion Config.
    $LOGIN_INPUT = GUICtrlCreateInput($LOGIN_READ, 160, 40, 121, 21) ;- Erstellt ein Eingabefeld für den Namen.
    $PASSWORD = GUICtrlCreateLabel("Passwort:", 104, 70, 50, 17) ;- Erstellt den Label "Password:".
    $PASS_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS", "");- Liest aus der Launcher.ini die Wert PASS aus der Sektion Config.
    $PASSWORD_INPUT = GUICtrlCreateInput($PASS_READ, 160, 68, 121, 21, $ES_PASSWORD);- Erstellt ein Eingabefeld für das Password.
    $IP = GUICtrlCreateLabel("Server:", 104, 98, 50, 17) ;- Erstellt den Label "IP:".
    $IP_INPUT = GUICtrlCreateCombo("", 160, 96, 121, 25) ;-;- Erstellt ein Eingabefeld für die IP.
    $START = GUICtrlCreateButton("Start", 194, 128, 89, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Start" zum starten des Spieles.
    $UPDATE = GUICtrlCreateButton("Update", 104, 128, 81, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Update" zum überprüfen auf Updates.
    $IMG = GUICtrlCreatePic(@AppDataDir & "\.minecraft\Splash.jpg", 0, 0, 400, 230, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $DL_PROG = GUICtrlCreateProgress(16, 173, 369, 25)
    $DL_LAB = GUICtrlCreateLabel("", 24, 204, 4, 4)
    $UPDATE = GUICtrlCreateButton("Update", 104, 128, 81, 25, $WS_GROUP)
    $VERSION = GUICtrlCreateLabel("V. 1.1", 352, 200, 32, 17)
    GUISetState(@SW_SHOW)
    _IniRead()

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

    ;====Variable====;
    $ServerINI = @TempDir & "\serverversion.ini"
    $LocalINI = @AppDataDir & "\.minecraft\Version.ini"
    $upd_url = IniRead($LocalINI, "File", "URL", "")
    $sString = BinaryToString(InetRead('http://update.aldeos.de/mc/serverversion.ini'))
    $hFile = FileOpen($ServerINI, 2)
    FileWrite($hFile, $sString)
    FileClose($hFile)
    FileDelete($hFile)
    $Ini1 = IniRead($ServerINI, "Update", "VERSION", "")
    $Ini2 = IniRead($LocalINI, "Update", "VERSION", "")
    $url = IniRead($ServerINI, "File", "URL", "")
    $NAME = IniRead($ServerINI, "File", "NAME", "")
    $size = InetGetSize($url & $NAME)

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

    ;====Funktionen====;
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($GUI)
    Exit
    Case $EXIT
    GUIDelete($GUI)
    Exit
    Case $IP_INPUT
    $sUrlName = GUICtrlRead($IP_INPUT)
    $sURL = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", $sUrlName, "")
    Case $START
    _startcheck()
    Case $UPDATE
    _updatecheck()
    Case $ADD
    _favadd()
    _IniRead() ;<======================
    Case $DELETE
    _favdel()
    _IniRead();<======================
    EndSwitch
    WEnd

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

    Func _IniRead() ;<<================ ganze Func
    $aFav = IniReadSection(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten")
    ;- Liest aus der Launcher.ini die Favoriten
    If IsArray($aFav) Then
    GUICtrlSetData($IP_INPUT, "", "")
    ;- _ArrayDisplay($aFav,"Favoriten")
    For $i = 1 To $aFav[0][0]
    GUICtrlSetData($IP_INPUT, $aFav[$i][0])
    Next
    EndIf
    EndFunc ;==>_IniRead

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

    Func _run()
    If Not @error Then
    $NAME = GUICtrlRead($LOGIN_INPUT)
    $PASS = GUICtrlRead($PASSWORD_INPUT)
    $IP = GUICtrlRead($IP_INPUT)
    $PASS_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS", "")
    ShellExecute(@AppDataDir & "\.minecraft\Minecraft.exe", $LOGIN_INPUT & " " & $PASS_READ & " " & $sURL) ;- Startet die Datei "Minecraft.exe" mit den folgenden Parametern, $NAME_READ, $PASS_READ und $IP_READ.
    If Not @error Then
    IniWriteSection(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME=" & GUICtrlRead($LOGIN_INPUT) & @LF & "PASS=" & GUICtrlRead($PASSWORD_INPUT) & @LF & "IP=" & GUICtrlRead($IP_INPUT)) ;- Schreit $NAME_INPUT, $PASSWORD_INPUT und $IP_INPUT in die INI.
    Exit
    EndIf
    EndIf
    EndFunc ;==>_run

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

    Func _updatecheck()
    If $Ini1 <> $Ini2 Then
    $iMsgBoxAnswer = MsgBox(52, "Aktualisierung gefunden!", "Es wurde eine Aktualisierung gefunden." & @CRLF & "Möchten Sie diese herunterladen?")
    Select
    Case $iMsgBoxAnswer = 6
    $download = InetGet($url & $NAME, $NAME, 1, 1)
    Do
    $info = InetGetInfo($download, 0)
    $percent = (100 / $size) * $info
    GUICtrlSetData($DL_PROG, $percent)
    $Old = GUICtrlRead($DL_LAB)
    $New = "Geladen:" & Round(($info / 1024) / 1024, 1) & " / " & Round(($size / 1024) / 1024, 1) & "MB"
    If $Old <> $New Then GUICtrlSetData($DL_LAB, $New)
    Until $percent >= 100
    IniWrite($LocalINI, "Update", "VERSION", $Ini1)
    _Update()
    Exit
    Case $iMsgBoxAnswer = 7
    Exit
    EndSelect
    EndIf
    EndFunc ;==>_updatecheck

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

    Func _startcheck()
    If $Ini1 <> $Ini2 Then
    MsgBox(48, "Version nicht aktuell!", "Ihre Version ist nicht aktuell." & @CRLF & "Bitte aktualisieren sie ihren Launcher.")
    ElseIf $Ini1 = $Ini2 Then
    _run()
    EndIf
    EndFunc ;==>_startcheck

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

    Func _Update($iDelay = 0)
    Local $sCmdFile
    FileDelete(@TempDir & "scratch.bat")
    $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
    & ':loop' & @CRLF _
    & 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
    & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
    & 'ren ' & @ScriptDir & '\Launcher_New.exe Launcher.exe' & @CRLF _
    & 'start ' & @ScriptDir & '\Launcher.exe' & @CRLF _
    & 'del ' & @TempDir & 'scratch.bat'
    FileWrite(@TempDir & "scratch.bat", $sCmdFile)
    Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)
    Exit
    EndFunc ;==>_Update

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

    Func _favadd()
    $FAV_ADD = GUICreate("Hinzufügen", 201, 122, 192, 124)
    $NAME = GUICtrlCreateInput("", 48, 24, 145, 21)
    $IP = GUICtrlCreateInput("", 48, 56, 145, 21)
    $LAB_NAME = GUICtrlCreateLabel("Name:", 8, 26, 35, 17)
    $LAB_IP = GUICtrlCreateLabel("IP:", 24, 58, 17, 17)
    $ADD_SERVER = GUICtrlCreateButton("Hinzufügen", 56, 88, 89, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $ADD_SERVER
    IniWrite(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", GUICtrlRead($NAME), GUICtrlRead($IP))
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($FAV_ADD)
    EndFunc ;==>_favadd

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

    Func _favdel()
    $FAV_DEL = GUICreate("Entfernen", 194, 99, 192, 124)
    $SELECT = GUICtrlCreateCombo("", 16, 24, 161, 25)
    $FAV_DELETE = GUICtrlCreateButton("Entfernen", 56, 56, 81, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $aFav = IniReadSection(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten")
    ;- Liest aus der Launcher.ini die Favoriten
    If IsArray($aFav) Then
    GUICtrlSetData($SELECT, "", "")
    ;- _ArrayDisplay($aFav,"Favoriten")
    For $i = 1 To $aFav[0][0]
    GUICtrlSetData($SELECT, $aFav[$i][0])
    Next
    EndIf

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $FAV_DELETE
    IniDelete(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", GUICtrlRead($SELECT))
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($FAV_DEL)
    EndFunc ;==>_favdel

    [/autoit]

    Könntest du mal kurz drüberschauen?

    ~EDIT~
    Ich habe den Fehler gefunden.
    Ich hatte, aus welchen Grund auch immer, $UPDATE doppelt im Script stehen, weshalb es nicht klappte.
    Jetzt jedoch funktioniert es ohne Probleme.

    3 Mal editiert, zuletzt von Kazuto (15. März 2011 um 13:55)