Problem mit Launcher

  • also es geht um einen Launcher der Angry Brids+Erweiterungen zusammenfassen soll.
    alle Button der Form sind belegt, Bild und Sound funzen auch.
    aber bei der Erweiterung "space" erscheint beim druck auf den Button diese Fehlermeldung: "Failed to open config.lua with errno 2"


    obwohl die Erweiterung mit der Verknüpfung funzt

    hier noch der Code:

    [autoit]

    SoundPlay (@ScriptDir &"\all\sount\sound.wav")
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Angry Brids+Erweiterungen", 317, 147, 1752, 264)
    $B1 = GUICtrlCreateButton("Hauptspiel", 0, 0, 75, 25)
    $Button2 = GUICtrlCreateButton("Rio", 16, 24, 75, 25)
    $Button3 = GUICtrlCreateButton("Seasons", 0, 48, 75, 25)
    $Button4 = GUICtrlCreateButton("Space", 16, 72, 75, 25)
    $Pic1 = GUICtrlCreatePic(@ScriptDir & "\all\pic\Angry_birds_by_saifdesign.jpg", 96, 0, 217, 145)
    $b5 = GUICtrlCreateButton("Trainer+2", 0, 96, 75, 25)
    $b6 = GUICtrlCreateButton("Trainer+1", 16, 120, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $B1
    ShellExecute(@ScriptDir & "\all\Angry Birds\0Standart\AngryBirds.exe")
    Exit

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

    case $Button2
    ShellExecute(@ScriptDir & "\all\Angry Birds\Angry Birds Rio\Angry Birds Rio\AngryBirdsRio.exe")
    Exit

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

    Case $Button3
    ShellExecute(@ScriptDir & "\all\Angry Birds\Angry Birds Seasons\AngryBirdsSeasons.exe")
    Exit

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

    Case $Button4
    ShellExecute(@ScriptDir & "\all\Angry Birds\Angry Birds Space\AngryBirdsSpace.exe")
    Exit

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

    Case $b5
    ShellExecute(@ScriptDir & "\all\Trainer\angry_birds_plus2_fixed_trainer.exe")
    Exit

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

    Case $b6
    ShellExecute(@ScriptDir & "\all\Trainer\AngryBirdsTrainer_FX.exe")
    Exit

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

    EndSwitch
    WEnd

    [/autoit]


    danke im vorraus

    MFG.SnakeHome

  • Also error 2 heisst, dass er die Datei nicht finden kann. Wenn alle anderen Buttons funktionieren, solltest du mal versuchen Run() zu benutzen oder ein wenig mit den optionalen Parametern von ShellExecute() herumzuspielen. Ich hab auch schon gehört dass es an dem liegt. Wenns dann immer noch nicht geht hab ich auch grad keine Antwort parat.

    Gruss Shadowigor

  • @Shadowigor

    hat leider nicht funzt aber trotzdem danke für deine Antwort:

    habe einfach eine Verknüpfung erstellt die ich jetzt ansteuere. is zwar nicht die feine, aber was soll´s

  • Apropos nicht die Feine - hier ein paar Tipps für sauberen Code ;)

    1. Keine Befehle vor Direktiven verwenden (SoundPlay / #include)
    2. Die von Koda generierten Namen sind ziemlich duselig - die Variablen für die GUI lassen sich besser manuell wählen.
    3. Auf Einrückung achten (insb. bei starken Verschachtelungen (kann natürlich auch beim einfügen hier verloren gegangen sein)
    4. Bei Anwendungsstarts würde ich Run dem ShellExecute vorziehen, und je nach Anwendung das Working-Dir auf @ScriptDir setzen.
    5. Dein Ordner heißt "sount" - das sollte bestimmt "sound" heißen.

    :) (Edit: Für so ein kleines Snippet natürlich keine unbedingt notwendigen Tipps)

  • Hust hust...
    *auf seine eigene Signatur guck*

    :rofl:

    Nein, ernsthaft: Sauberer Code ist verdammt wichtig.
    Und was Koda angeht... benutzt das ernsthaft jemand? Das ist doch manuell tausend mal einfacher.
    Und WENN ich schon ein Tool dafür benutze, dann lieber das FormStudio von ISI360. ;)

    lg chess

  • Koda benutze ich nur zu Erstellung von Vorlagen, wenns ne aufwändigere GUI wird, um da ein bisschen die Controls hin und her zu schieben.
    Danach wirds komplett per Hand geschrieben - allein schon weil die Koordinaten dann saubere Werte haben. Schonmal versucht in Koda irgendwas "in die Mitte" von etwas zu kriegen? :D