Launcher

  • Hallo.

    Ich habe vor, für das Spiel Borderlands einen Launcher zu erstellen.
    Wenn man das Spiel, im LAN Modus mit Freunden spielen will, benötigt man oft das Programm Hamachi.
    Dazu kommt noch, dass an den Pfad die IP des Host's angehängt werden muss, was nach einiger Zeit nervt, da man die Verknüpfung bearbeiten und die IP ändern muss, sobald der Host wechselt.

    Daher bin ich dabei, einen simplen Launcher zu erstellen, der Abhilfe schafft.

    Jedoch komme ich nun nicht weiter.

    Ich habe einen Button ($GUI_GAME_SEARCH) , zum durchsuchen der .exe des Spieles.
    Ich habe ein Textfeld ($GUI_PATH), wo der Pfad anschliessend angezeigt wird.
    Ich habe einen Button ($GUI_GAME_START), der die .exe mit der IP ($GUI_IP_INPUT) starten soll.

    So sieht mein Launcher aus.
    [Blockierte Grafik: http://img837.imageshack.us/img837/871/unbenannt2h.png]


    Hier ist mein Quellcode:

    [autoit]

    ; ================================;
    ; Borderlands Launcher
    ; Made by Kazu
    ; © 2010 Kingdom Sieger Networks
    ; ================================;

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

    ;====Includes====;
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #NoTrayIcon
    FileInstall("Splash.bmp", @ScriptDir& "\Splash.bmp")
    FileInstall("bg.mp3", @ScriptDir & "\bg.mp3")
    SoundPlay ( "bg.mp3", 0 )
    SoundSetWaveVolume ( 15 )

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

    ;====GUI====;
    #Region ### START Koda GUI section ###
    $GUI_MAIN = GUICreate("Borderlands Launcher V0.1 © by Kazu", 641, 362, 659, 372)
    $PATH_READ = IniRead(@ScriptDir & "\Launcher.ini", "Optionen", "IP","Bitte IP eingeben")
    $GUI_IP_INPUT = GUICtrlCreateInput($PATH_READ, 400, 90, 129, 21)
    $GUI_IP_TEXT = GUICtrlCreateLabel("IP:", 376, 93, 17, 17)
    $GUI_IP_SAVE = GUICtrlCreateButton("Speichern", 536, 88, 73, 25, $WS_GROUP)
    $GUI_GAME_START = GUICtrlCreateButton("Starte Borderlands", 384, 128, 153, 57, $WS_GROUP)
    $PATH_READ = IniRead(@ScriptDir & "\Launcher.ini", "Optionen", "Pfad","Bitte Pfad auswählen")
    $GUI_PATH = GUICtrlCreateInput($PATH_READ, 304, 42, 225, 21)
    $GUI_GAME_SEARCH = GUICtrlCreateButton("Durchsuchen", 536, 40, 75, 25, $WS_GROUP)
    $GUI_IMAGE = GUICtrlCreatePic(@scriptdir & "\Splash.bmp", 0, 0, 640, 361, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ;====Funktionen====;

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_GAME_SEARCH
    $FILE_PATH = FileOpenDialog("Wähle die Borderlands.exe aus!", @DesktopDir, "(Borderlands.exe)")
    If Not @error Then GUICtrlSetData($GUI_PATH, $FILE_PATH)
    IniWrite(@ScriptDir & "\Launcher.ini", "Optionen", "Pfad", $FILE_PATH)
    Case $GUI_IP_SAVE
    IniWrite(@ScriptDir & "\Launcher.ini", "Optionen", "IP", $GUI_IP_INPUT)

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

    EndSwitch
    WEnd

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

    Der Button $GUI_GAME_START soll die .exe von $GUI_GAME_SEARCH ausführen und $GUI_IP_INPUT anhängen.

    Zudem habe ich bei dem

    [autoit]

    Case $GUI_IP_SAVE
    IniWrite(@ScriptDir & "\Launcher.ini", "Optionen", "IP", $GUI_IP_INPUT)

    [/autoit]


    einen Fehler.
    Der IniWrite schreibt mir, egal was ich eintrage, immer "IP=3" in die .ini.

    Ich hoffe, mir kann einer helfen.

    ~EDIT~
    Ich habe nun den Script so bearbeitet, dass der Pfad zur .exe in einer .ini gespeichert wird.
    Dennoch bräuchte ich noch Hilfe bei dem Start Button.

    7 Mal editiert, zuletzt von Kazuto (25. August 2010 um 16:50)

  • Einfach die .exe Starten die später als Pfad ausgewählt wurde....

    Meine Projekte :

    Taschenrechner [X]
    JamLegend Auto-Player [Canceld]
    Launcher [X]
    Multi-Game-Quest-Viewer [Canceld]


    [autoit]

    If $goffy or not $brain Then $DeleteInetCable

    [/autoit]
  • Zur Auslesen des Inhaltes eines Input-Elements musst du GUICtrlRead verwenden. Sonst gibt die Varriable nur den Element-Index zurück(Hier 3).
    So muss es aussehen, damit der Inhalt des Input-Felds ausgelesen wird.

    [autoit]

    Case $GUI_IP_SAVE
    IniWrite(@ScriptDir & "\Launcher.ini", "Optionen", "IP", GUICtrlRead($GUI_IP_INPUT))

    [/autoit]
  • Zur Auslesen des Inhaltes eines Input-Elements musst du GUICtrlRead verwenden. Sonst gibt die Varriable nur den Element-Index zurück(Hier 3).
    So muss es aussehen, damit der Inhalt des Input-Felds ausgelesen wird.

    [autoit]

    Case $GUI_IP_SAVE
    IniWrite(@ScriptDir & "\Launcher.ini", "Optionen", "IP", GUICtrlRead($GUI_IP_INPUT))

    [/autoit]

    Danke für die Hilfe.
    Es funktioniert problemlos. ^^