Unterschied zwischen Run() und ShellExecute()

  • Hey alle zusammen,

    ich möchte etwas über die CMD / Shell in Windows über AutoIt ausführen lassen. Mir ist bekannt das es dazu 2 Möglichkeiten gibt. Diese wären zum Beispiel:

    AutoIt
    Run(@ComSpec & " /c " & $myCommand, "", @SW_HIDE)
    ;und
    ShellExecute($myCommand)


    Nur verstehe ich den Unterschied der beiden Ausführungen nicht. Beide führen mein gewünschtes Kommando aus aber welche Vor- oder Nachteile bringt mir der Einsatz der jeweiligen Funktion? Gibt es bestimmte Szenarien bei denen ich die Nutzung einer Funktion der anderen vorziehen sollte? Was genau steckt hinter den beiden Möglichkeiten? Eine ausführliche Antwort ist natürlich sehr erwünscht. Hoffe jemand kann's erklären.

    Mfg, mtzE91

  • Hi,
    was ist an den Angaben der (deutschen) Hilfe missverständlich?
    Sowohl die deutsche, als auch die "orginale" Hilfe erklären detailliert, was die Unterschiede sind!

    Beide führen mein gewünschtes Kommando aus

    Bei mir nicht...

    AutoIt
    FileDelete("test.txt")
    FileWrite("test.txt", "Das ist ein Test!")
    $ret = Run("test.txt")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $ret = ' & $ret & @CRLF & '>Error code: ' & @error & @CRLF)  ;### Debug Console
    $ret = ShellExecute("test.txt")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $ret = ' & $ret & @CRLF & '>Error code: ' & @error & @CRLF)  ;### Debug Console

    Run() führt zu einem error, Shellexecute() nicht....und nu?

    aber welche Vor- oder Nachteile bringt mir der Einsatz der jeweiligen Funktion?

    Was würdest du von einer Programmiersprache halten, welche zwei völlig identische Funktionen mit unterschiedlichem Namen bereitstellt?
    Wenn es zwei unterschiedliche Funktionen gibt, dann deshalb, weil diese auch zwei unterschiedliche Anwendungsbereiche haben, welche auch dokumentiert sind....wobei wir wieder bei der Hilfe wären.