1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Kazuto

Beiträge von Kazuto

  • Favoriten und GUI in einer GUI schliessen.

    • Kazuto
    • 13. März 2011 um 23:20

    Hallo Mitglieder.

    Ich sitze gerade an den letzten 5% meines Launchers.
    Diese sind eine Favoriten Funktion.

    Diese Funktion ist auch bereits zur Häfte geschrieben.
    Die Funktion beinhaltet das Hinzufügen und Entfernen von Favoriten.

    Die Hinzufügen ist komplett fertig, was jetzt fehlt ist, dass wenn der Server hinzugefügt wurde, sich die GUI in _favadd schliesst.
    Das Entfernen kommt, sobald ich das Problem mit der GUI behoben habe.
    Das dritte Problem ist, dass ich aus der InputBox der IP eine ComboBox erstellt habe, diese soll die Favoriten auslesen, den Namen anzeigen und die IP zum verbinden verwenden.

    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>

    [/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, 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("IP:", 104, 98, 17, 17) ;- Erstellt den Label "IP:".
    $IP_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "Favoriten", "");- Liest aus der Launcher.ini die Wert IP aus der Sektion Config.
    $IP_INPUT = GUICtrlCreateCombo($IP_READ, 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)

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

    ;====Variable====;
    $ServerINI = @TempDir & "\serverversion.ini"
    $LocalINI = @AppDataDir & "\.minecraft\Version.ini"
    $upd_url = IniRead($LocalINI, "File", "URL", "")
    $sString = BinaryToString(InetRead('http://46.4.146.40/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 $EXIT
    Exit
    Case $START
    _startcheck()
    Case $UPDATE
    _updatecheck()
    Case $ADD
    _favadd()
    Case $DELETE
    _favdel()
    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 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
    GUIDelete($FAV_ADD)
    Case $ADD_SERVER
    IniWrite(@AppDataDir & "\.minecraft\Launcher.ini", "Favoriten", GUICtrlRead($NAME), GUICtrlRead($IP))
    GUIDelete($FAV_ADD)
    EndSwitch
    WEnd
    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]

    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
    EndFunc

    [/autoit]

    Die INI ist so aufgebaut.

    Spoiler anzeigen

    [Config]
    NAME=
    PASS=
    IP=

    [Favoriten]
    Legendary-Network.eu=46.4.146.40:3541
    Triavolution=mc.kh-fortress.de:1336

    Wäre einer bereit, mir bei den letzten 5% zu helfen?

    Mit freundlichen Grüßen
    Aldeos.

    ~EDIT~
    Habe das mit der GUI gelöst.

    ~EDIT2~
    Das Problem mit den GUI ist zwar gelöst, doch nun lässt sich, nach Aufruf einer GUI, die HauptGUI nicht mehr beenden.
    Zudem wird in der ComboBox von _favdel() und $IP_INPUT nichts angezeigt.

  • Daten in ein .jar verpackten ordner schieber

    • Kazuto
    • 13. März 2011 um 22:11

    Verweden doch einfach WinRar.
    Damit kannst du die .jar ganz einfach öffnen und die Datei an einen beliebigen Ordner innerhalb der .jar verschieben.

  • Minecraft Launcher für 1.3

    • Kazuto
    • 13. März 2011 um 20:26

    Danke Chip.

    Hier gibt es wirklich großartigen Support.

    Ich werde den ersten Post überarbeiten.

  • Minecraft Launcher für 1.3

    • Kazuto
    • 13. März 2011 um 12:19

    Hallo.

    Mein Launcher ist nun zu 100% fertiggestellt.

    Dank den Updates von Minecraft, kann man nun eine Verknüpfung mit Parameter starten.

    Zitat von Mojang

    One cool feature about the new launcher you might want to know about is that you can pass it command-line features! The syntax is:
    Minecraft <username> <password> <server:port>


    Diese Parameter ermöglichen es, ohne etwas im Menü anklicken zu müssen, sich direkt mit seinem Account einzuloggen und sich mit dem Server zu verbinden.

    Dieses Feature habe ich mir zur Nutzen gemacht und habe daraus erstmals einen Launcher geschrieben, nun wurde daraus aber ebenfalls ein Updater für den Launcher.

    Launcher
    [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)
    $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.
    $SERVER = 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)
    $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)
    $SERVER_NAME = GUICtrlCreateInput("", 48, 24, 145, 21)
    $SERVER_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($SERVER_NAME), GUICtrlRead($SERVER_IP))
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($FAV_ADD)
    EndFunc ;==>_favadd

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

    Func _favdel()
    $FAV_DEL = GUICreate("Entfernen", 194, 99, 192, 124)
    $SERVER_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($SERVER_SELECT, "", "")
    ;- _ArrayDisplay($aFav,"Favoriten")
    For $i = 1 To $aFav[0][0]
    GUICtrlSetData($SERVER_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($SERVER_SELECT))
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($FAV_DEL)
    EndFunc ;==>_favdel

    [/autoit]


    Über Feedback, Kritik und Verbesserungsvorschläge würde ich mich freuen.

    Mit freundlichem Gruß
    Aldeos

    Dateien

    Launcher.rar 512,26 kB – 872 Downloads
  • Ränder transparent machen?

    • Kazuto
    • 13. März 2011 um 12:10

    Nein, ich habe Windows 7 Ultimate 64Bit.

    Der Rand entsteht ja erst, sobal ich z.B. einen schwarzen Hintergrund (Grafik) habe, die Buttons aber standartgemäß lasse.

  • Problem mit @Scriptdir

    • Kazuto
    • 13. März 2011 um 12:09

    Versuch es mal ohne die 1 bei FileInstall.
    Ich trage bei mir dort auch die Zahlen ein und hatte bisher kein Problem.

  • Download trotz ausführen der Datei fertigstellen?

    • Kazuto
    • 13. März 2011 um 11:08

    Habe es nun so gemacht.

    Updatecheck und Download

    [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)
    Run (@AppDataDir & "\.minecraft\Update.exe")
    Exit
    Case $iMsgBoxAnswer = 7
    Exit
    EndSelect
    EndIf
    EndFunc

    [/autoit]

    Update.exe

    [autoit]

    Sleep (1000)

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

    FileCopy (@AppDataDir & "\.minecraft\Launcher_New.exe", @AppDataDir & ".minecraft\Launcher.exe")
    FileDelete (@AppDataDir & "\.minecraft\Launcher_New.exe")

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

    Sleep (1000)

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

    Run (@AppDataDir & "\.minecraft\Launcher.exe")

    [/autoit]

    ~EDIT~
    Habe es nun so gemacht.

    [autoit]

    FileDelete (@AppDataDir & "\.minecraft\Launcher.exe")
    FileCopy (@AppDataDir & "\.minecraft\Launcher_New.exe", @AppDataDir & "\.minecraft\Launcher.exe")

    [/autoit]

    Danke für deine Hilfe, Chip.

  • Download trotz ausführen der Datei fertigstellen?

    • Kazuto
    • 13. März 2011 um 10:32

    Wenn ich das richtig verstanden habe also:

    Launcher.exe wird gestartet > Button wird geklickt > Updater.exe wird gestartet > Launcher.exe geschlossen > Download wird begonnen > Download fertig > Alte Launcher.exe wird überschrieben.

    oder?

  • Problem mit @Scriptdir

    • Kazuto
    • 13. März 2011 um 10:07

    Entschuldigung falls ich mich irre, aber müsste
    If Not FileExists($lol) Then FileInstall("lol.jpg", $lol, 1) nicht vor $lol = @ScriptDir & "\lol.jpg" stehen?

    Ich persönlich würde es so schreiben:

    Spoiler anzeigen
    [autoit]

    If Not FileExists(@ScriptDir & "\lol.jpg") Then FileInstall("lol.jpg", @ScriptDir & "\lol.jpg", 1)
    $lol = @ScriptDir & "\lol.jpg"
    $lolform1=GUICreate("Wenns dir egal ist...", 250, 190)
    GUICtrlCreatePic($lol, -1, -1)
    $verstanden=GUICtrlCreateButton("Verstanden", 5, 150, 240, 40)
    GUISetState(@SW_SHOW, $lolform1)

    [/autoit]
  • Ränder transparent machen?

    • Kazuto
    • 13. März 2011 um 09:51

    Hallo Mitglieder.

    Ich habe mich in der letzten Zeit so sehr mit AutoIt beschäftigt,
    dabei habe ich die GUI ganz vergessen.

    Ich wollte daher fragen, ob es möglich ist die weißen Ränder von Buttons, Bars etc. transparent zu machen.

    Da ich bei meinen Grafiken immer ein weißes Feld habe, damit die Ränder nicht auffallen, was jedoch unschön aussieht.

    Mit freundlichem Gruß
    Aldeos

  • Download trotz ausführen der Datei fertigstellen?

    • Kazuto
    • 13. März 2011 um 09:33

    Hallo Mitglieder.

    Ich habe meinen Launcher/Updater nun zu 90% fertig.
    Was noch fehlt, ist eine Favoriten Funktion.
    Zu der komme ich aber später.

    Mein Update soll die .exe downloaden, die gerade zum downloaden ausgeführt wird.
    Da die .exe jedoch geöffnet ist, kann er diese also nicht ersetzten.

    Ich wollte gerne wissen, ob man dies irgendwie beheben kann.

    Hier mal mein Script.

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Icon.ico
    #AutoIt3Wrapper_outfile=Launcher.exe
    #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]

    ;====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.
    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://46.4.146.40/minecraft/updates/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

    [/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)
    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]
  • Ausgabe der IniRead in einer InputBox mit * ersetzten?

    • Kazuto
    • 13. März 2011 um 07:28

    Hallo Mitglieder.

    Da ich gerade einen Launcher geschrieben habe,
    wo man sein Passwort angeben muss, wollte ich fragen, ob es möglich ist, die Ausgabe in der InputBox durch * zu ersetzten?

    Mit freundlichen Grüßen
    Aldeos

    ~EDIT~
    Habe die Antwort gefunden.

    [autoit]

    GUICtrlCreateInput("", 160, 60, 121, 21, $ES_PASSWORD)

    [/autoit]


    http://translation.autoit.de/onlinehilfe/ap…es.htm#Extended

  • ~EDIT~ Mehrere Schlüssel vor Starten des Clienten auslesen?

    • Kazuto
    • 13. März 2011 um 06:38

    Der Launcher funktioniert jetzt ganz gut, jedoch muss er neugestartet werden, damit er richtig verbindet.

    Wie kann ich dies beheben?
    Es ist mir klar, dass man vorher einfach die INI erneut auslesen muss, bevor ShellExecute eintritt, aber ich weiß leider nicht wie.

    Mein aktueller Code:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=Icon.ico
    #AutoIt3Wrapper_Outfile=Launcher.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ; ================================;
    ; Minecraft Launcher
    ; Made by Kazu
    ; © 2011 Kazu
    ; ================================;

    [/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.bmp") Then FileInstall("Splash.bmp", @AppDataDir & "\.minecraft\Splash.bmp") ;- 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]

    ;====GUI====;
    #Region ### START Koda GUI section ###
    $GUI = GUICreate("Minecraft Launcher by Aldeos", 400, 177, 203, 142) ;- Erstellt die GUI.
    $NAME = GUICtrlCreateLabel("Login:", 104, 34, 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, 32, 121, 21) ;- Erstellt ein Eingabefeld für den Namen.
    $PASSWORD = GUICtrlCreateLabel("Password:", 104, 62, 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, 60, 121, 21);- Erstellt ein Eingabefeld für das Password.
    $IP = GUICtrlCreateLabel("IP:", 104, 90, 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, 88, 121, 21);- Erstellt ein Eingabefeld für die IP.
    $SAVE = GUICtrlCreateButton("Save", 104, 128, 81, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Save" zum speichern der IniWriteSection.
    $START = GUICtrlCreateButton("Start", 192, 128, 89, 25, $WS_GROUP) ;- Erstellt einen Button mit der Aufschrift "Start" zum starten des Spieles.
    $GUI_IMAGE = GUICtrlCreatePic(@AppDataDir & "\.minecraft\Splash.bmp", 0, 0, 401, 177, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) ;- Erstellt das Hintergrundbild für die GUI.
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ;====Funktionen====;
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $SAVE
    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.
    Case $START
    ShellExecute(@AppDataDir & "\.minecraft\Minecraft.exe", $NAME_READ & " " & $PASS_READ & " " & $IP_READ) ;- Startet die Datei "Minecraft.exe" mit den folgenden Parametern, $NAME_READ, $PASS_READ und $IP_READ.
    If Not @error Then Exit
    EndSwitch
    WEnd

    [/autoit]

    ~EDIT4~
    Habe es mit einer simplen Funktion gelöst.

    [autoit]

    Func _run()
    If Not @error Then
    $NAME = GUICtrlRead($NAME_INPUT)
    $PASS = GUICtrlRead($PASSWORD_INPUT)
    $IP = GUICtrlRead($IP_INPUT)
    ShellExecute(@AppDataDir & "\.minecraft\Minecraft.exe", $NAME & " " & $PASS & " " & $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

    [/autoit]

    Somit benötigt ich den $SAVE Button nicht mehr, da er es jetzt nach dem Starten in die INI schreibt.
    Danke an alle, die mir geholfen haben.

  • ~EDIT~ Mehrere Schlüssel vor Starten des Clienten auslesen?

    • Kazuto
    • 13. März 2011 um 06:24

    Danke dir, Jautois.
    Ich hatte IniWriteSection völlig vergessen.

    Auch dir danke ich, Goldy.
    Jedoch war Jautois schneller.

  • ~EDIT~ Mehrere Schlüssel vor Starten des Clienten auslesen?

    • Kazuto
    • 13. März 2011 um 05:37

    Hallo Mitglieder.

    Ich sitze gerade an einem kleinen Script dran und habe ein Problem.

    Mein Script ist soweit fertig, nur stellt sich mir das Problem, dass ich nicht weiß wie ich drei IniWrites miteinander verbinde.

    Hier ist der Script:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Icon.ico
    #AutoIt3Wrapper_outfile=Launcher.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ; ================================;
    ; 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.bmp") Then FileInstall("Splash.bmp", @AppDataDir& "\.minecraft\Splash.bmp")

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

    ;====GUI====;
    $GUI = GUICreate("Minecraft Launcher by Aldeos", 400, 177, 203, 142)
    $NAME = GUICtrlCreateLabel("Login:", 104, 34, 33, 17)
    $NAME_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME","")
    $NAME_INPUT = GUICtrlCreateInput($NAME_READ, 160, 32, 121, 21)
    $PASSWORD = GUICtrlCreateLabel("Password:", 104, 62, 53, 17)
    $PASS_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS","")
    $PASSWORD_INPUT = GUICtrlCreateInput($PASS_READ, 160, 60, 121, 21)
    $IP = GUICtrlCreateLabel("IP:", 104, 90, 17, 17)
    $IP_READ = IniRead(@AppDataDir & "\.minecraft\Launcher.ini", "Config", "IP","")
    $IP_INPUT = GUICtrlCreateInput($IP_READ, 160, 88, 121, 21)
    $SAVE = GUICtrlCreateButton("Speichern", 104, 128, 81, 25, $WS_GROUP)
    $START = GUICtrlCreateButton("Start", 192, 128, 89, 25, $WS_GROUP)
    $GUI_IMAGE = GUICtrlCreatePic(@AppDataDir & "\.minecraft\Splash.bmp", 0, 0, 401, 177, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)

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

    ;====Funktionen====;
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $SAVE
    Case $START
    ShellExecute (@AppDataDir & "\.minecraft\Minecraft.exe", $NAME_READ & " " & $PASS_READ & " " & $IP_READ)
    If Not @error Then Exit
    EndSwitch
    WEnd

    [/autoit]

    Und hier sind die IniWrites:

    [autoit]

    IniWrite (@AppDataDir & "\.minecraft\Launcher.ini", "Config", "NAME", ($NAME_INPUT))
    IniWrite (@AppDataDir & "\.minecraft\Launcher.ini", "Config", "PASS", ($PASS_INPUT))
    IniWrite (@AppDataDir & "\.minecraft\Launcher.ini", "Config", "IP", ($IP_INPUT))

    [/autoit]

    Alle drei sollen mit dem Button $SAVE gespeichert werden.

    Ich hoffe mir kann einer helfen. :)

  • Minecraft Server Manager

    • Kazuto
    • 11. März 2011 um 15:23

    Minecraft Version 1.3 bzw. 1.3_01.

    ~EDIT~
    Es wird jetzt ein Cmd Fenster geöffnet, jedoch wird der Server nicht gestartet.

  • Minecraft Server Manager

    • Kazuto
    • 11. März 2011 um 15:19

    Ich habe bei $dir einfach

    [autoit]

    $dir = @Scriptdir

    [/autoit]

    gemacht und aus
    $cmd habe ich

    [autoit]

    $cmd = "java -Xms512M -Xmx512M -cp craftbukkit-0.0.1-SNAPSHOT.jar com.mojang.minecraft.server.MinecraftServer"

    [/autoit]

    gemacht.

    Jedoch startet der Server nicht, es wird auch keine Java.exe gestartet.

  • Minecraft Server Manager

    • Kazuto
    • 11. März 2011 um 14:43

    Ich sehe keine sichtbaren Veränderungen.

  • Minecraft Server Manager

    • Kazuto
    • 11. März 2011 um 08:09

    Nun funktioniert der Script.

    Jedoch wird mir in $OVERVIEW nichts angezeigt.

    ~EDIT~
    Beim ersten Start wurde nichts angezeigt, jetzt wird der Inhalt aber wiedergegeben.

    Die Befehle funktionieren weiterhin nicht, leider wird der Overview nicht automatisch aktualisiert.

  • Minecraft Server Manager

    • Kazuto
    • 11. März 2011 um 07:27

    Ich erhalte folgende Fehlermeldungen beim Ausführen des Scriptes.

    Spoiler anzeigen
    Code
    D:\AutoIt\Bukkit Server Manager\Bukkit Server Manager - Kopie.au3(63,26) : ERROR: syntax error
    GUICtrlSetData($OVERVIEW $data
    ~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\AutoIt\Bukkit Server Manager\Bukkit Server Manager - Kopie.au3(63,54) : ERROR: GUICtrlSetData() [built-in] called with wrong number of args.
    GUICtrlSetData($OVERVIEW $data & @CRLF & $avArray[$i])
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\AutoIt\Bukkit Server Manager\Bukkit Server Manager - Kopie.au3(64,1) : ERROR: missing Next.
    EndIf
    ^
    D:\AutoIt\Bukkit Server Manager\Bukkit Server Manager - Kopie.au3(61,12) : REF: missing Next.
    For $i = 1 To
    ~~~~~~~~~~~^
    D:\AutoIt\Bukkit Server Manager\Bukkit Server Manager - Kopie.au3(64,1) : ERROR: syntax error
    EndIf
    ^
    D:\AutoIt\Bukkit Server Manager\Bukkit Server Manager - Kopie.au3 - 4 error(s), 0 warning(s)
    Alles anzeigen

    ~EDIT~

    Habe die Fehler behoben.

    Spoiler anzeigen
    [autoit]

    Func Getdata()
    Local $avArray
    _FileReadToArray("server.log", $avArray)
    For $i = 1 To $avArray[0]
    $data = GUICtrlRead($OVERVIEW)
    GUICtrlSetData($OVERVIEW, $data & @CRLF & $avArray[$i])
    Next
    EndFunc

    [/autoit]

    ~EDIT2~

    Ich erhalte nun folgende Fehlermeldung beim starten des Servers.
    [Blockierte Grafik: http://img36.imageshack.us/img36/7500/1299825302987.jpg]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™