Funktionreferenz


ShellExecute

Beschreibung anzeigen in

Führt ein externes Programm unter Verwendung der ShellExecute-API aus.

ShellExecute ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag]]]] )

Parameter

filename Der Name der auszuführenden Datei (EXE, .txt, .lnk etc.).
parameters [optional] Alle Parameter für das Programm. Wird ein leerer String ("") angegeben, so werden keine Parameter verwendet.
workingdir [optional] Das Arbeitsverzeichnis. Wird ein leerer String ("") angegeben, so wird das aktuelle Arbeitsverzeichnis verwendet.
verb [optional] Der zu verwendende Folgebefehl, gebräuchliche Folgebefehle sind:
    $SHEX_OPEN ("open") = Öffnet die angegebene Datei. Die Datei kann eine Anwendung, ein Dokument oder ein Ordner sein.
    $SHEX_EDIT ("edit") = Startet einen Editor und öffnet das Dokument zum Bearbeiten. Falls "filename" kein Dokument ist, scheitert die Funktion.
    $SHEX_PRINT ("print") = Druckt das angegebene Dokument. Falls "filename" kein Dokument ist, scheitert die Funktion.
    $SHEX_PROPERTIES ("properties") = Zeigt die Eigenschaften der Datei oder des Ordners.
Für mehr Informationen was passiert, wenn kein "verb" festgelegt ist siehe Bemerkungen.

Die Konstanten sind in "AutoItConstants.au3" definiert.
showflag [optional] Das Anzeige-Flag des ausgeführten Programms:
    @SW_HIDE = Verstecktes Fenster
    @SW_MINIMIZE = Minimiertes Fenster
    @SW_MAXIMIZE = Maximiertes Fenster

Rückgabewert

Erfolg: Die Prozess-ID (PID) des gestarteten Prozesses. Oder -1 wenn keine PID verfügbar.
Fehler: 0 und setzt das @error Flag auf ungleich null.

Bemerkungen

Nach dem Starten des angegebenen Programms wird das Skript fortgesetzt. Um die weitere Skriptausführung zu pausieren, bis das gestartete Programm beendet wurde, ist stattdessen die Funktion ShellExecuteWait() zu verwenden.

Wenn kein "verb" festgelegt wird, wird das Standard-verb verwendet. Das Standard-verb ist das "verb" welches in der Registry definiert ist. Falls kein "verb" in der Registry als Standard gesetzt ist, wird das "open" "verb" verwendet. Falls das "open" "verb" nicht verfügbar ist, dann wird das erste in der Registry aufgelistete "verb" verwendet.

Um .lnk-Dateien (Verknüpfungen) zu starten ist es eventuell notwendig, zuerst den korrekten Dateinamen zu ermitteln. Dies geschieht mit der Funktion FileGetShortcut().
Bsp:
$filepath = FileGetShortcut($lnk)
ShellExecute($filepath[0])

Verwandte Funktionen

Run, RunAs, RunAsWait, RunWait, ShellExecuteWait

Beispiel

#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Frägt die folgende Textdatei ab. Diese kann sich im Include-Ordner befinden, welcher sich wiederum im Installationspfad von AutoIt liegt.
    Local $sWow64 = ""
    If @AutoItX64 Then $sWow64 = "\Wow6432Node"
    Local $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE" & $sWow64 & "\AutoIt v3\AutoIt", "InstallDir") & "\include\_ReadMe_.txt"

    ; Lädt die readme Datei (.txt) mit dem Standardeditor für Textdateien.
    Local $iPID = ShellExecute($sFile)

    MsgBox($MB_SYSTEMMODAL, "", "PID: " & $iPID)
EndFunc   ;==>Example