Anfängerfrage bezüglich ShellExecute

  • Hallo,
    habe folgendes kleines Programm:

    [autoit]

    $input = InputBox("Password-Abfrage Fifa12", "Bitte Passwort eingeben:")
    $passwort = "fifa12tl050493"
    while ($input <> $passwort)
    if($input = $passwort) Then
    ShellExecute("D:/Spiele/Fifa 12/Game/set.exe", "", @SW_MAXIMIZE)
    Else
    $input = InputBox("Password-Abfrage", "Bitte Passwort eingeben:")
    EndIf
    Sleep(200);
    WEnd

    [/autoit]

    Es soll nur die set.exe ausführen, wenn das Passwort richtig eingetragen ist. Soll als kleiner Schutz fungieren, damit mein kleiner Bruder ohne meine Erlaubnis keine Programme bei mir nutzen kann :)


    Wenn ich den Pfad, der bei ShellExecute drin steht, direkt in Ausführen eingebe, startet mein Spiel. Also ist der Pfad schon einmal richtig.

    Jedoch öffnet sich bei erfolgreicher Eingabe des Passworts das Game nicht..

    Grüße,
    Schrubber

    Einmal editiert, zuletzt von Schrubber (9. Oktober 2011 um 01:28)

  • Wenn du das Passwort beim ersten mal richtig eingibst, kommt er gar nicht in die Schleife. Du machst es am besten so:

    [autoit]


    $input = "" ; Dann kommt er sicher in die Schleife
    $passwort = "fifa12tl050493"
    while ($input <> $passwort)
    if($input = $passwort) Then
    ShellExecute("D:/Spiele/Fifa 12/Game/set.exe", "", @SW_MAXIMIZE)
    Else
    $input = InputBox("Password-Abfrage", "Bitte Passwort eingeben:")
    EndIf
    ;Sleep(200); Kann weggelassen werden. Bringt gar nichts.
    WEnd

    [/autoit]

    Gruss Shadowigor

  • Das könnte daran liegen, dass du ein Leerzeichen im Pfad hast. So sollte es gehen:

    ShellExecute("D:/Spiele/Fifa" & Chr(32) & "12/Game/set.exe", "", @SW_MAXIMIZE)

    Hab das Problem auch schon gehabt. Bin mir aber nicht mehr sicher ob genau das die lösung war.

  • [autoit]

    $input = ""
    $passwort = "fifa12tl050493"
    while ($input <> $passwort)
    $input = InputBox("Password-Abfrage", "Bitte Passwort eingeben:")
    WEnd

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

    Run("D:/Spiele/Fifa 12/Game/set.exe", "", @SW_MAXIMIZE)

    [/autoit]


    Es lag daran, dass ich bei der Eingabe von dem richtigen Passwort direkt aus der While Herausgeflogen bin (nach dem Else) und somit der Teil mit dem Execute niemals kam.
    Jedoch erscheint nun nach der richtigen Eingabe kurz ein Fenster, was sich direkt wieder schließt. Was das :(

  • Vermutlich kannst du bei Workingdir nicht "" nehmen. Probiers mal mit Default:

    Run("D:/Spiele/Fifa 12/Game/set.exe", Default, @SW_MAXIMIZE)

  • Sieh dir mal den @error an nach dem ShellExecute. Wenn der i.O. ist, weis ich auch nicht. Liegts vielleicht am Spiel?

  • Also:


    Geh nun zu dem Ordner des Spieles und mach einen Rechtsklick auf die .exe. Dann auf Eigenschaften und such dir den Dateipfad. Diesen kopierst du in die $Programm - Variable und ergänzt ihn durch die "fifa.exe"


    Grüße
    Stoani

    mfg, Stoani

  • 1.)Probiers mal mit einer Compilten Versionl
    2.)So?


    3.) Vll lässt sich noch was mit Controlclick machen....

    mfg, Stoani

  • Hast du es schon einmal einfach nur so ausprobiert?
    ShellExecute("D:/Spiele/Fifa 12/Game/set.exe")
    Meiner Ansicht nach ist der Parameter @SW_MAXIMIZE doch unnötig, denn wenn ich die EXE manuell (per Doppelklick) ausführe, werden ja auch keine Parameter übergeben und trotzdem startet das Spiel ordnungsgemäß (das sind jetzt nur Vermutungen, ich habe selbst kein FIFA 12).

  • Vl. geht es ja wirklich ohne @SW_MAXIMIZE, Schrubber hat es aber noch nicht ausprobiert, denn er war zuletzt um 00:56 online, du hast deinen Post aber erst um 01:38 geschrieben. Also abwarten und Tee trinken ^^

  • Hier ist ein Script, das funktioniert:

    [autoit]

    $input = InputBox("Password-Abfrage Fifa12", "Bitte Passwort eingeben zum Starten eingeben:")
    $passwort = "testpwtest"
    If($input = $passwort) Then
    Run("D:/Spiele/Fifa 12/Game/set.exe")
    ElseIf($input <> $passwort) Then
    Exit
    EndIf

    [/autoit]

    Wenn der Pfad zur Datei richtig ist, funktioniert es problemlos.
    Passwort kannst natürlich ändern.

    MfG Aero