Execute(file$[, args$, t])
Execute(cmdline$[, resetkeys])
file$
angegebene Datei synchron
aus und übergibt ihm die in args$
angegebenen Argumente. Falls
Sie ein Programm asynchron ausführen möchten, müssen Sie den
Befehl Run() benutzen. Siehe Run für Details.
Wenn synchrones Ausführen einer Datei vom Betriebssystem unterstützt
wird, können Sie diesen Befehl fürs Anzeigen von Daten-Dateien wie
Dokumente oder Bilder durch das Standardanzeigeprogramm verwenden.
In diesem Fall kann file$
auch eine nicht ausführbare Datei
wie ein JPEG-Bild oder eine MP3-Datei sein.
Auf Android muss file$
entweder eine Datendatei wie ein JPEG-Bild
oder ein Paketname wie com.airsoftsoftwair.hollywood
sein,
wenn Sie mit diesem Befehl eine andere App starten wollen.
Beachten Sie, dass es aus historischen Gründen einige Fallstricke
bei der Verwendung von diesem Befehl gibt. Vor Hollywood 9.0
erwartete dieser Befehl, dass Programm und Argumente in einer
einzigen cmdline$
-Zeichenkette zusammengefasst werden. In
diesem Fall ist beim Umgang mit Leerzeichen besondere Vorsicht
geboten (Details siehe unten). Ab Hollywood 9.0 gibt es eine
neue Syntax, die es Ihnen ermöglicht, Programm und Argumente
als zwei separate Argumente zu übergeben, was die Sache viel
einfacher macht. Um die Kompatibilität mit früheren Versionen
aufrechtzuerhalten, kann diese neue Syntax jedoch nur verwendet
werden, wenn Sie explizit eine Zeichenkette im zweiten Argument
übergeben. Wenn Sie also die neue Syntax verwenden möchten,
stellen Sie sicher, dass Sie im zweiten Argument eine Zeichenkette
übergeben. Wenn das Programm, das Sie starten möchten, keine
Argumente benötigt, übergeben Sie einfach einen leere Zeichenkette
(""), um Hollywood zu signalisieren, dass Sie die neue Syntax
verwenden möchten.
Wenn Sie im zweiten Argument keine Zeichenkette übergeben, wird
die alte Syntax verwendet, was bedeutet, dass Sie bei der Übergabe
von Programmpfaden, die Leerzeichen enthalten, sehr vorsichtig
sein müssen, da das allererste Leerzeichen in cmdline$
als
Trennzeichen zwischen Programm und Argumenten interpretiert
wird. Wenn Sie ein Programm starten möchten, dessen Pfadangabe
Leerzeichen verwendet, müssen Sie diese Pfadangabe in doppelte
Anführungszeichen setzen, sonst funktioniert es nicht. Sie können
diese Komplikationen leicht vermeiden, indem Sie im zweiten
Argument einfach eine Zeichenkette übergeben, auch wenn diese
leer ist (siehe oben für Details).
Ab Hollywood 9.0 ist es möglich, das Programm und seine Argumente in zwei separaten Argumenten anzugeben, was die Sache wesentlich komfortabler macht. Außerdem gibt es jetzt ein neues optionales Tabellenargument, das verwendet werden kann, um weitere Optionen anzugeben.
Die folgenden Optionen werden derzeit durch das optionale Tabellenargument unterstützt:
Directory:
ResetKeys:
resetkeys
ist nur interessant für fortgeschrittene
Anwender. Wenn dies auf False
gesetzt ist, wird Execute()
nicht
alle internen Tastenzustände zurücksetzten, nachdem das Programm
ausgeführt wurde. Standardmäßig werden alle Tastenzustände
zurückgesetzt, wenn Execute()
beendet ist, weil Programme unter
Verwendung von Execute()
übernehmen oft den Tastaturfokus und Hollywood
wird möglicherweise nicht in der Lage sein, die internen Status-Flags
zurückzugsetzten. Aus diesem Grund werden standardmäßig mit Execute()
alle internen Tastenzustände zurückgesetzt, wenn dieser Befehl
beendet ist. Es könnte dann Sinn machen, dieses Verhalten zu
deaktivieren, wenn Sie Execute()
für den Start von Programmen verwenden,
die nicht über eine GUI verfügen und nicht den Tastaturfokus wegnehmen.
Voreingestellt ist True
. (V5.1)
ForceExe:
True
gesetzt ist, wird Execute()
die in
file$
übergebene Datei immer als ausführbare Datei behandeln.
Dies ist nur unter Linux und macOS nützlich, da auf diesen Plattformen
Dateien mit einer Erweiterung als Datendateien behandelt werden,
sodass Hollywood stattdessen versucht, das entsprechende (Anzeige)Programm
für die Datendatei zu starten. Daher funktioniert der Versuch,
Execute()
auf einer ausführbaren Datei namens "test.exe" zu
verwenden, aufgrund der Erweiterung *.exe unter Linux und macOS
nicht. Indem Sie ForceExe
auf True
setzen, können Sie es jedoch
zum Laufen bringen. Die Voreinstellung ist False
. (V9.0)
Verb:
Execute()
mitteilt, was mit der Datei geschehen
soll. Dies kann eines der folgenden Verben sein:
edit
explore
Execute()
übergeben.
find
Execute()
übergeben.
open
print
runas
Beachten Sie, dass der Tag Verb
nur unter Windows unterstützt
wird. (V9.1)
Siehe auch Run() und Exists().
Execute("Sys:Prefs/Locale")Der obige Code führt auf AmigaOS das Einstellungsprogramm Locale aus. Die Ausführung des Skripts wird angehalten, bis der Benutzer das Einstellungsprogramm Locale schließt (synchrone Ausführung).
Execute("Echo >Ram:Test \"Hello World\"")Auf Systemen mit AmigaOS schreibt der obige Code "Hello World" in "Ram:Test".
Execute("\"C:\\Program Files (x86)\\Hollywood\\ide.exe\"")Der obige Code führt die Hollywood-IDE auf Windows-Systemen aus. Beachten Sie, dass wir die Programmdekleration in doppelte Anführungszeichen eingebettet haben. Dies ist unbedingt erforderlich, da das erste Leerzeichen in der Zeichenkette, die an
Execute()
übergeben wird, normalerweise als Trennzeichen zwischen Programm
und Argumenten interpretiert wird. Wenn wir keine doppelten
Anführungszeichen in dem obigen Code verwendeten, würde Execute()
versuchen, das Programm "C:\Program" zu starten und die Argumente
"Files (x86)\Hollywood\ide.exe" zu übergeben, was wir offensichtlich
nicht wollen. Beachten Sie, dass es seit Hollywood 9.0 jetzt
viel einfacher ist, mit Leerzeichen in Pfaden umzugehen. Sie
müssen nur die neue Syntax verwenden, die das Programm und seine
Argumente in zwei separaten Argumenten verwendet. Mit Hollywood 9.0
können Sie einfach diesen Code verwenden:
Execute("C:\\Program Files (x86)\\Hollywood\\ide.exe", "")Beachten Sie, dass die Übergabe der leeren Zeichenkette im zweiten Argument hier unbedingt erforderlich ist, um Hollywood zu signalisieren, dass Sie die neue Syntax verwenden möchten. Siehe oben für detaillierte Informationen darüber.