Überprüfen ob mein Programm mit einem Parameter gestartet wird

  • Spoiler anzeigen

    Hallo,
    Wie kann ich Überprüfen ob mein eigenes Programm mit mit einem Parameter gestartet wird?
    Z.B.: Wenn ich z.B. die control.exe mit dem Parameter NUSRMGR.CPL starte, öffnet sich das Benutzerkonten Fenster.
    Sieht in Autoit dann so aus:

    [autoit]

    Run('control.exe NUSRMGR.CPL')

    [/autoit]

    Das erste Skript soll ein zweites mit einem Parameter Starten.

    [autoit]

    Run('blablabla.exe hallo') ; "hallo" ist der Parameter

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

    ;Oder

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

    Run('blablabla.exe PlaySound') ; "PlaySound" ist der Parameter

    [/autoit]

    Das zweite Skript soll dann überprüfen ob es mit einem Parameter gestartet wurde und wenn das der Fall ist soll es eine Funktion starten.

    [autoit]

    $parameter = ??
    If $parameter <> "" Then MsgBox(0, 'Parameter', 'Das Programm wurde mit dem Parameter "' & $parameter & _
    '" Gestartet')

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

    ;Oder

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

    $parameter = ??
    If $parameter = 'PlaySound' Then SoundPlay('C:\\BlaBlaBla_Ordner\blablabla.mp3')

    [/autoit]

    Ist das möglich? Und wenn ja wie?^^

    /edit: Sry hab doch was gefunden

    [autoit]

    Run('AutoIt3.exe BlaBlaBla.au3 param1 "das ist ein anderer Parameter"')

    [/autoit]

    Zweite Skript:

    [autoit]

    #include <Array.au3>

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

    _ArrayDisplay($CmdLine)

    [/autoit]

    Funktioniert das auch, wenn man kein AutoIt auf dem PC hat? (Natürlich als .exe)

    Hat sich erledigt es geht auch wenn es Kompiliert ist^^

    MfG xXTobi93Xx :)

    2 Mal editiert, zuletzt von xXTobi93Xx (4. September 2009 um 19:54)

  • Hallo xXTobi93Xx,

    zu deiner letzten Frage: ja _ArrayDisplay($CmdLine) funktioniert immer.

    Hier ein Beispielskript (aus Hilfe um $cmdline erweitert) Programm erwartet als Parameter x PlaySound und als Parameter x+1 das zu spielende Lied

    Spoiler anzeigen
    [autoit]

    If @error = 2 Then
    MsgBox(0, "Fehler", "Die Datei existiert nicht.")
    Exit
    ElseIf @error = 3 Then
    MsgBox(0, "Fehler", "Der Aliasname ist ungültig.")
    Exit
    ElseIf @extended <> 0 Then
    $extended = @extended ; Zuweisung, weil @extended nach DllCall-Aufruf geändert wird
    $stText = DllStructCreate("char[128]")
    $errorString = DllCall("winmm.dll", "short", "mciGetErrorStringA", "str", $extended, "ptr", DllStructGetPtr($stText), "int", 128)
    MsgBox(0, "Fehler", "Öffnen fehlgeschlagen." & @CRLF & "Fehlernummer: " & $extended & @CRLF & "Fehlerbeschreibung: " & DllStructGetData($stText, 1) & @CRLF & "Beachte: Möglicherweise kann der Sound dennoch korrekt abgespielt werden.")
    Else
    MsgBox(0, "Erfolgsmeldung", "Die Datei wurde erfolgreich geöffnet.")
    EndIf
    _SoundPlay($sound, 1)

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

    _SoundClose($sound)

    [/autoit]

    /edit sehe ist bereits gelöst (war wohl eine lange Zigarettenpause)
    mfg (Auto)Bert