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

  • Ist es möglich einen .vbs Script in AutoIt "umzuwandeln"?

    • Kazuto
    • 31. März 2013 um 23:32

    Danke water.

    Ich habe deinen Script genommen und in meine GUI eingebaut, bitte erschlagt mich nicht für die Unordentlichkeit.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ;-----GUI Elemente-----
    $GUI = GUICreate("Photoshop Thumbail Tool", 460, 183, 192, 148)
    $in_start = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "START", ""), 112, 13, 121, 21)
    $lbl_start = GUICtrlCreateLabel("Startnummer:", 13, 16, 85, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_end = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", ""), 112, 37, 121, 21)
    $lbl_end = GUICtrlCreateLabel("Endnummer:", 20, 40, 78, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path = GUICtrlCreateLabel("Speicherpfad:", 14, 120, 84, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path_2 = GUICtrlCreateLabel(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", ""), 112, 120, 300, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_path = GUICtrlCreateButton("Durchsuchen", 112, 146, 75, 25)
    $in_vText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", ""), 328, 13, 121, 21)
    $lbl_vText = GUICtrlCreateLabel("Vortext:", 264, 16, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_nText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", ""), 328, 37, 121, 21)
    $lbl_nText = GUICtrlCreateLabel("Nachtext:", 256, 40, 58, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_layer = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", ""), 112, 61, 121, 21)
    $lbl_layer = GUICtrlCreateLabel("Textebene:", 29, 64, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_quality = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", ""), 112, 88, 121, 21)
    $lbl_quality = GUICtrlCreateLabel("Qualität:", 45, 88, 53, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_save = GUICtrlCreateButton("Speichern", 288, 144, 81, 25)
    $btn_start = GUICtrlCreateButton("Starten", 376, 144, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_path
    Search()
    Case $btn_save
    Save()
    Case $btn_start
    Start()

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

    EndSwitch
    WEnd

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

    $iStart = GuiCtrlRead($in_start)
    $iEnde = GuiCtrlRead($in_end)
    $sVortext = GUICtrlRead ($in_vText)
    $sNachtext = GUICtrlRead ($in_nText)
    $iTextebene = GUICtrlRead ($in_layer)
    $sSpeicherpfad = GuiCtrlRead($lbl_path_2)
    Global $i

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

    Global $oAppref = ObjCreate("Photoshop.Application")
    If $oAppref.documents.count <> 0 Then
    Global $oDocref = $oAppref.ActiveDocument
    Else
    MsgBox(0, "", "Erst die Datei öffnen!")
    EndIf

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

    Global $oJpgSaveOptions = ObjCreate("Photoshop.JPEGSaveOptions")
    $oJpgSaveOptions.EmbedColorProfile = True
    $oJpgSaveOptions.FormatOptions = 1 ; psStandardBaseline
    $oJpgSaveOptions.Matte = 1 ; psNoMatte
    $oJpgSaveOptions.Quality = GUICtrlRead($in_quality)

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

    ;-----Funktionen-----
    Func Search()
    $s_path = FileSelectFolder("Wähle bitte deinen Speicherort aus", "C:/")
    $in_path = GUICtrlSetData($lbl_path_2, $s_path)
    EndFunc ;==>Search

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

    Func Save()
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "START", GUICtrlRead($in_start))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", GUICtrlRead($in_end))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", GUICtrlRead($lbl_path_2))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", GUICtrlRead($in_vText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", GUICtrlRead($in_nText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", GUICtrlRead($in_layer))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", GUICtrlRead($in_quality))
    EndFunc ;==>Save

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

    Func Start()
    Global $sOutFileName
    For $i = $iStart To $iEnde
    $oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext
    $sOutFileName = $sSpeicherpfad & "\" & $i & ".jpg"
    $oDocref.SaveAs($sOutFileName, $oJpgSaveOptions, True)
    Next
    EndFunc ;==>Start

    [/autoit]

    Mir wird als Fehler folgendes angezeigt:

    Spoiler anzeigen
    Code
    C:\Users\Kazuto\Desktop\Neuer Ordner\AutoIt v3 Script (neu).au3 (91) : ==> Variable used without being declared.:
    For $i = $iStart To $iEnde
    For $i = ^ ERROR

    Wie kann ich diesen Fehler beheben?
    Ich habe es bereits mit Global $i versucht, der Fehler erscheint dennoch.

    ~EDIT~
    Ich habe nun alles in die Funktion gepackt.
    Er holt Photoshop zwar nun in den Vordergrund jedoch wird an der Ebene nichts verändert und ebenfalls keine Datei gespeichert.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ;-----GUI Elemente-----
    $GUI = GUICreate("Photoshop Thumbail Tool", 460, 183, 192, 148)
    $in_start = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "START", ""), 112, 13, 121, 21)
    $lbl_start = GUICtrlCreateLabel("Startnummer:", 13, 16, 85, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_end = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", ""), 112, 37, 121, 21)
    $lbl_end = GUICtrlCreateLabel("Endnummer:", 20, 40, 78, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path = GUICtrlCreateLabel("Speicherpfad:", 14, 120, 84, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path_2 = GUICtrlCreateLabel(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", ""), 112, 120, 300, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_path = GUICtrlCreateButton("Durchsuchen", 112, 146, 75, 25)
    $in_vText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", ""), 328, 13, 121, 21)
    $lbl_vText = GUICtrlCreateLabel("Vortext:", 264, 16, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_nText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", ""), 328, 37, 121, 21)
    $lbl_nText = GUICtrlCreateLabel("Nachtext:", 256, 40, 58, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_layer = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", ""), 112, 61, 121, 21)
    $lbl_layer = GUICtrlCreateLabel("Textebene:", 29, 64, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $cmb_quality = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", ""), 112, 88, 121, 21)
    $lbl_quality = GUICtrlCreateLabel("Qualität:", 45, 88, 53, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_save = GUICtrlCreateButton("Speichern", 288, 144, 81, 25)
    $btn_start = GUICtrlCreateButton("Starten", 376, 144, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_path
    Search()
    Case $btn_save
    Save()
    Case $btn_start
    Start()

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

    EndSwitch
    WEnd

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

    Global $iStart = GUICtrlRead($in_start)
    Global $iEnde = GUICtrlRead($in_end)
    Global $sVortext = GUICtrlRead($in_vText)
    Global $sNachtext = GUICtrlRead($in_nText)
    Global $iTextebene = GUICtrlRead($in_layer)
    Global $sSpeicherpfad = GUICtrlRead($lbl_path_2)

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

    ;-----Funktionen-----
    Func Search()
    $s_path = FileSelectFolder("Wähle bitte deinen Speicherort aus", "C:/")
    $in_path = GUICtrlSetData($lbl_path_2, $s_path)
    EndFunc ;==>Search

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

    Func Save()
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "START", GUICtrlRead($in_start))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", GUICtrlRead($in_end))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", GUICtrlRead($lbl_path_2))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", GUICtrlRead($in_vText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", GUICtrlRead($in_nText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", GUICtrlRead($in_layer))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", GUICtrlRead($cmb_quality))
    EndFunc ;==>Save

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

    Func Start()
    Global $oAppref = ObjCreate("Photoshop.Application")
    If $oAppref.documents.count <> 0 Then
    Global $oDocref = $oAppref.ActiveDocument
    Else
    MsgBox(0, "", "Erst die Datei öffnen!")
    EndIf

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

    Global $oJpgSaveOptions = ObjCreate("Photoshop.JPEGSaveOptions")
    $oJpgSaveOptions.EmbedColorProfile = True
    $oJpgSaveOptions.FormatOptions = 1 ; psStandardBaseline
    $oJpgSaveOptions.Matte = 1 ; psNoMatte
    $oJpgSaveOptions.Quality = GUICtrlRead($cmb_quality)

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

    Global $sOutFileName
    For $i = $iStart To $iEnde
    $oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext
    $sOutFileName = $sSpeicherpfad & "\" & $i & ".jpg"
    $oDocref.SaveAs($sOutFileName, $oJpgSaveOptions, True)
    Next
    EndFunc ;==>Start

    [/autoit]
  • Ist es möglich einen .vbs Script in AutoIt "umzuwandeln"?

    • Kazuto
    • 31. März 2013 um 21:44

    Vielen Dank für die Tipps.

    Ich werde mir mal den Link von minx anschauen.

    Ich war mir unsicher wegen diesen Zeilen:

    Spoiler anzeigen
    Code
    Set jpgSaveOptions = CreateObject( "Photoshop.JPEGSaveOptions" )
    jpgSaveOptions.EmbedColorProfile = True
    jpgSaveOptions.FormatOptions = 1 ' psStandardBaseline
    jpgSaveOptions.Matte = 1 ' psNoMatte
    jpgSaveOptions.Quality = quality
  • Ist es möglich einen .vbs Script in AutoIt "umzuwandeln"?

    • Kazuto
    • 31. März 2013 um 21:36

    Hallo Mitglieder,

    Ich benutze für meine Thumbnails auf YouTube einen .vbs Script welcher die Textebene bearbeitet, sodass ich dies nicht manuell machen muss.

    So sieht der Code aus:

    Spoiler anzeigen
    Code
    start=1		'***Erste Zahl***
    ende=2 	  	'***Letzte Zahl***
    Speicherpfad=""	'***Speicherpfad angeben***
    vortext="0"		'***Text vor der Nummer***
    nachtext=""		'***Text nach der Nummer***
    textebene=1		'***Auf welcher Ebene befindet sich der Text***
    quality=7		'***Qualität zwischen 1 und 12 wählen***
    
    
    Set appref = CreateObject("Photoshop.Application")
    If appref.documents.count<>0 Then
    	Set docref=appref.ActiveDocument
    Else	
    	MsgBox "Erst die Datei öffnen!"
    End If
    
    
    Set jpgSaveOptions = CreateObject( "Photoshop.JPEGSaveOptions" )
    jpgSaveOptions.EmbedColorProfile = True
    jpgSaveOptions.FormatOptions = 1 ' psStandardBaseline
    jpgSaveOptions.Matte = 1 ' psNoMatte
    jpgSaveOptions.Quality = quality
    
    
    For i=start To ende
        docref.ArtLayers(textebene).TextItem.Contents = vortext & CStr(i) & nachtext
        outFileName = Speicherpfad & "\" & i & ".jpg"
        docRef.SaveAs outFileName, jpgSaveOptions, True, extType
    Next
    Alles anzeigen

    Ist es möglich die Funktion dieses Scripts in AutoIt zu schreiben, sodass ich dort eine GUI einbauen kann.
    Dadurch müsste ich die Datei bei verschiedenen Projekten nicht erneut bearbeiten und könnte alles in der GUI festlegen.

    Ich hoffe mir kann einer ein wenig helfen und mir eventuell Tipps geben.

    Mit freundlichem Gruß,
    Daisuke

  • Al Bhed Umwandler

    • Kazuto
    • 7. August 2011 um 00:55

    Danke James1337.
    Es funktioniert einwandfrei.

    Als kleines Beispiel:
    Sed vnaihtmelras Kniß
    Tyeciga Retage

    Auf deutsch:
    Mit freundlichem Gruß
    Daisuke Hideki

  • Al Bhed Umwandler

    • Kazuto
    • 6. August 2011 um 22:11

    Danke an alle, ich glaube das mit den Keyboard Layout ist das simpelste.

    Ich bin auch bereits damit fertig ^^
    Jetzt müsste ich nur noch wissen, wo ich das Keyboard Layout hinpacken muss. ^^

  • Al Bhed Umwandler

    • Kazuto
    • 6. August 2011 um 21:51

    Danke campweb und progandy, werde ich machen.

    @James1337
    Ich merke dass mein Beispiel etwas unverständlich ausgedrückt ist.

    Hier mal die Liste.

    Spoiler anzeigen

    A = Y
    B = P
    C = L
    D = T
    E = A
    F = V
    G = K
    H = R
    I = E
    J = Z
    K = G
    L = M
    M = S
    N = H
    O = U
    P = B
    Q = X
    R = N
    S = C
    T = D
    U = I
    V = J
    W = F
    X = Q
    Y = O
    Z = W

  • Al Bhed Umwandler

    • Kazuto
    • 6. August 2011 um 21:17

    Hallo Mitglieder.

    Da ich ein großer Final Fantasy Fan bin, wollte ich mir ein kleines Tool schreiben.

    In Final Fantasy gibt es eine Sprache die Al Bhed genannt wird, diese Sprache setzt sich jedoch nicht aus Worten zusammen, sondern lediglich aus anderen Buchstaben.

    Ein Beispiel:
    Deutsch | Al Bhed
    Hallo | Rymmu
    Bye | Poa

    Ich würde jetzt gerne ein Programm schreiben, der mir diese Buchstaben automatisch per Tastendruck umwandelt, da ich so ungestört mit meinen Freunden schreiben kann, da sie diese Sprache auch kennen, falls ich mal Besuch haben sollte, der den Inhalt nicht lesen soll.

    Eine Liste, welche Buchstabe welcher ist, habe ich, ich weiß nur nicht, wie ich dieses Programm schreiben kann.

    Könnte mir einer helfen?

    Mit freundlichem Gruß
    Daisuke

  • Mit AutoIt (exp *) multiplizieren etc.

    • Kazuto
    • 29. März 2011 um 16:19

    Vielen herzlichen Dank blubbstar.

  • Mit AutoIt (exp *) multiplizieren etc.

    • Kazuto
    • 29. März 2011 um 16:02

    Ich würde ja, den money changer als seperates Programm erstellen.

  • Mit AutoIt (exp *) multiplizieren etc.

    • Kazuto
    • 29. März 2011 um 14:49

    Vielen Dank blubbstar.

    Der Support hier ist einfach grandios. ^^

    *EDIT*

    Ich habe nun eine Progressbar eingefügt, da es sonst den Anschein hat, als wäre das Programm stehen geblieben.
    Ich würde diese Progressbar nun gerne mit dem aktuellen Code verbinden.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <array.au3>
    #include <WindowsConstants.au3>
    $GUI = GUICreate("Kal Online EXP Changer", 390, 113, 281, 206)
    $VALUE = GUICtrlCreateInput("", 96, 56, 105, 21)
    $PLUS = GUICtrlCreateButton("+", 208, 56, 25, 25, $WS_GROUP)
    $MINUS = GUICtrlCreateButton("-", 240, 56, 25, 25, $WS_GROUP)
    $DIV = GUICtrlCreateButton("/", 304, 56, 25, 25, $WS_GROUP)
    $MULTI = GUICtrlCreateButton("*", 272, 56, 25, 25, $WS_GROUP)
    $FILE = GUICtrlCreateInput("", 72, 16, 217, 21)
    $OPEN = GUICtrlCreateButton("Open", 296, 16, 57, 25, $WS_GROUP)
    $FILE_LAB = GUICtrlCreateLabel("File:", 40, 16, 23, 17)
    $VALUE_LAB = GUICtrlCreateLabel("Change by:", 32, 56, 58, 17)
    $PROG = GUICtrlCreateProgress(16, 96, 353, 9)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $OPEN
    $sFile = FileOpenDialog("Search for initmonster.txt", @ScriptDir & "\", "(initmonster.txt)", 1 + 4)
    If @error Then ContinueLoop
    GUICtrlSetData($FILE, $sFile)
    Case $PLUS, $MINUS, $MULTI, $DIV
    $sSign = "+"
    If $nMsg = $MINUS Then $sSign = "-"
    If $nMsg = $MULTI Then $sSign = "*"
    If $nMsg = $DIV Then $sSign = "/"
    $sRead = FileRead(GUICtrlRead($FILE))
    $aVal = StringRegExp($sRead, "\(exp (\d*)\)", 3)
    For $i = 0 To UBound($aVal) - 1
    $sRead = StringReplace($sRead, "(exp " & $aVal[$i] & ")", "(exp " & Execute($aVal[$i] & $sSign & GUICtrlRead($VALUE)) & "--)")
    Next
    $sRead = StringReplace($sRead, "--) ", ") ")
    FileDelete($sFile)
    FileWrite($sFile, $sRead)
    MsgBox(262144, "Successfully", "The Experience was successfully changed.")
    EndSwitch
    WEnd

    [/autoit]

    *EDIT*
    Wäre es auch möglich, das gleiche Tool für solche Zeilen zu schreiben?

    Spoiler anzeigen

    (group (index 101) (money (920 200)) (item (960 443 0) (1000 47 0)))
    (group (index 102) (money (860 300)) (item (900 443 0) (920 2 0) (940 23 0) (960 91 0) (1000 47 0)))

    In dieser Zeile sollte (money * *) geändert werden.
    Jedoch nur der 2. Wert, daher kann ich den oben genannten Script nicht so einfach umschreiben.

  • Mit AutoIt (exp *) multiplizieren etc.

    • Kazuto
    • 29. März 2011 um 14:38

    Ein FileOpenDialog habe ich bereits.
    Wie kann ich FileRead mit dem Dialog verknüpfen?
    StringRegExp verstehe ich nicht ganz, das Beispiel in der Hilfe ist mir zu unverständlich.

  • Mit AutoIt (exp *) multiplizieren etc.

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

    Eine GUI habe ich nun geschrieben.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=c:\users\kazu\desktop\gui.kxf
    $GUI = GUICreate("Kal Online EXP Changer", 390, 90, 281, 206)
    $VALUE = GUICtrlCreateInput("", 96, 56, 105, 21)
    $PLUS = GUICtrlCreateButton("+", 208, 56, 25, 25, $WS_GROUP)
    $MINUS = GUICtrlCreateButton("-", 240, 56, 25, 25, $WS_GROUP)
    $DIV = GUICtrlCreateButton("/", 304, 56, 25, 25, $WS_GROUP)
    $MULTI = GUICtrlCreateButton("*", 272, 56, 25, 25, $WS_GROUP)
    $FILE = GUICtrlCreateInput("", 72, 16, 217, 21)
    $OPEN = GUICtrlCreateButton("Open", 296, 16, 57, 25, $WS_GROUP)
    $FILE_LAB = GUICtrlCreateLabel("File:", 40, 16, 23, 17)
    $VALUE_LAB = GUICtrlCreateLabel("Change by:", 32, 56, 58, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $OPEN
    FileOpenDialog("Search for initmonster.txt", @ScriptDir & "\", "(initmonster.txt)", 1 + 4 )
    Case $PLUS

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

    Case $MINUS

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

    Case $MULTI

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

    Case $DIV

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

    EndSwitch
    WEnd

    [/autoit]
  • Mit AutoIt (exp *) multiplizieren etc.

    • Kazuto
    • 29. März 2011 um 13:49

    Hallo Mitglieder.

    Vorweg, mir ist kein besserer Titel eingefallen.

    Nun zum Thema.

    Ich habe folgendes Dokument, welches so aufgebaut ist.

    Spoiler anzeigen

    (monster (name 1) (index 1) (country 2) (race 0) (level 1) (ai 1) (range 20) (sight 160 240) (exp 2) (itemgroup 1 2)
    (str 21) (hth 1) (int 10) (wis 10) (dex 2) (hp 1) (mp 70) (aspeed 2400) (hit 0) (dodge 0)
    (attack 0 7 7) (magic 0 0) (defense 0 0) (absorb 0) (mspeed 1600 800)
    (quest (2 1 901 1) (3 1 902 1) (54 1 1025 1) (8001 1 933 1)))

    (monster (name 2) (index 2) (country 2) (race 0) (level 3) (ai 1) (range 16) (sight 160 240) (exp 4) (itemgroup 2 2)
    (str 27) (hth 2) (int 10) (wis 10) (dex 4) (hp 1) (mp 70) (aspeed 2400) (hit 0) (dodge 0)
    (attack 0 8 8) (magic 0 0) (defense 1 1) (absorb 0) (mspeed 1600 800) (resist 0 0 1 1 1)
    (quest (2 1 901 1) (3 1 902 1) (55 1 1026 1) (8001 1 933 1)))

    Ich möchte nun ein Script schreiben, welches dieses Dokument öffnet, den Wert in (exp *) nimmt und diesen mit dem angegeben Wert multipliziert, dividiert etc.

    Die GUI würde folgendermaßen aussehen.
    Als erstes ist eine Inputbox, dort neben ein *, /, +, - und dort neben ein Button mit der Aufschrift "Change".
    Danach soll er diese Veränderungen speichern.

    Nun wollte ich fragen, ob dies mit AutoIt möglich ist.

    Mit freundlichem Gruß
    Aldeos

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

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

    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.

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

    • Kazuto
    • 15. März 2011 um 03:29

    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?

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

    • Kazuto
    • 15. März 2011 um 01:25

    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]
  • Favoriten und GUI in einer GUI schliessen.

    • Kazuto
    • 14. März 2011 um 12:21

    Danke dir, autoBert.

    Nun verbindet er zu der IP.

  • Favoriten und GUI in einer GUI schliessen.

    • Kazuto
    • 14. März 2011 um 12:00

    Ich habe es eben versucht, doch da wurden mir dann keine Favoriten angezeigt.
    Habe daher mal den ganzen Code kopiert und die Zeile auskommentiert, scheinbar hatte ich eben etwas vergessen, weshalb es nicht funktioniert hat. ^^

    Könntest du mir noch kurz dabei helfen, dass er zu der IP verbindet?
    Dann wäre mein Launcher fertig.

  • Favoriten und GUI in einer GUI schliessen.

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

    TheLuBu
    Danke dir, jetzt muss ich es nur noch so hinbiegen, dass er zu der IP verbindet ^^

    autoBert
    Danke, aber immer wenn ich den Launcher nun starte, kommt ein extra Fenster mit den Favoriten, wahrscheinlich wegen _ArrayDisplay.
    Dies ist in einem Launcher nicht grade von Nutzen ;)
    Daher bleibe ich bei der Variante von TheLuBu.

  • Favoriten und GUI in einer GUI schliessen.

    • Kazuto
    • 14. März 2011 um 09:17

    Danke autoBert.

    Das mit den GUI's funktioniert nun.

    Wie mache ich es denn, das meine ComboBox sich automatisch aktualisiert bzw. erstmal muss sie ja ausgelesen werden.
    Finde da den Fehler nicht, selbst nach einem erneuten ausführen wird dort nichts angezeigt.

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™