4D v14.3

LAUNCH EXTERNAL PROCESS

Home

 
4D v14.3
LAUNCH EXTERNAL PROCESS

LAUNCH EXTERNAL PROCESS 


 

LAUNCH EXTERNAL PROCESS ( DateiName {; EingVar {; AusgVar {; FehlerVar}}} )  
Parameter Typ   Beschreibung
DateiName  String in Pfad und Argumente der zu startenden Datei
EingVar  String, BLOB in Eingabevariable (stdin)
AusgVar  String, BLOB in Ausgabevariable (stdout)
FehlerVar  String, BLOB in Fehlervariable (stderr)

Der Befehl LAUNCH EXTERNAL PROCESS startet unter Windows und OS X einen externen Prozess von 4D. Auf OS X gewährt dieser Befehl Zugriff auf jedes ausführbare Programm, das sich über das Terminal starten lässt.

Hinweis: Für 4D Pack Benutzer hat dieser Befehl dieselben Funktionalitäten (plus Erweiterungen) wie die Funktion AP_Sublaunch.

In DateiName übergeben Sie den festen Dateipfad des auszuführenden Programms, sowie bei Bedarf die erforderlichen Argumente.
Auf OS X können Sie auch nur den Namen des Programms übergeben. 4D findet dann über die Umgebungsvariable PATH das ausführbare Programm.

Warnung: Dieser Befehl kann nur ausführbare Programme starten; er kann keine Anweisungen ausführen, die Teil der "Shell" (Befehls-Interpreter) sind. Auf Mac OS ist es z.B. nicht möglich, mit diesem Befehl die Anweisung Echo auszuführen oder Indirektionen.

EingVar (optional) enthält den stdin des externen Prozesses. Nach Ausführung des Befehls enthalten die Variablen AusgVar und FehlerVar – sofern übergeben – stdout und stderr des externen Prozesses. Sie können statt Parameter vom Typ String auch BLOB verwenden, wenn Sie Text größer als 32 KB oder binäre Daten, z.B. Bilder verwenden.

Hinweis: Verwenden Sie die Umgebungsvariable _4D_OPTION_BLOCKING_EXTERNAL_PROCESS mit dem Befehl SET ENVIRONMENT VARIABLE  (asynchrone Ausführung, gibt er in den Parametern AusgVar und FehlerVar keinen Wert zurück.

Die folgenden Beispiele verwenden das OS X Terminal aus dem Ordner Applications/Utilities.

1. Den Zugriff für eine Datei ändern (chmod ist die OS X Funktion zum Ändern des Dateizugriffs):

 LAUNCH EXTERNAL PROCESS("chmod +x /folder/myfile.txt")

2. Eine Textdatei bearbeiten (cat ist die OS X Datei zum Bearbeiten von Dateien):

 C_TEXT(input;output)
 input:=""
 LAUNCH EXTERNAL PROCESS("/bin/cat /folder/myfile.txt";input;output)

3. Den Inhalt eines Ordners anzeigen (ls -l is ist die Entsprechung unter UNIX für die Funktion dir in DOS):

 C_TEXT($In;$Out)
 LAUNCH EXTERNAL PROCESS("/bin/ls -l /Users";$In;$Out)

4. Um eine unabhängige "grafische" Anwendung zu starten, verwenden Sie besser den Systembefehl Öffnen. (In diesem Fall hat die Anweisung LAUNCH EXTERNAL PROCESS dieselbe Wirkung wie Doppelklick auf die Anwendung): 

 LAUNCH EXTERNAL PROCESS("open /Applications/Calculator.app")

5. NotePad öffnen:

 LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe")

6. Notepad und spezifisches Dokument öffnen:

 LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe C:\\Docs\\new folder\\res.txt")

7. Microsoft® Word® Anwendung und ein bestimmtes Dokument öffnen (beachten Sie die Verwendung von zwei ""):

 $mydoc:="C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE \"C:\\
 Documents and Settings\\Mark\\Desktop\\MyDocs\\New folder\\test.xml\""
 LAUNCH EXTERNAL PROCESS($mydoc;$tIn;$tOut)

8. Ein Perl Skript ausführen (benötigt ActivePerl):

 C_TEXT($input;$output)
 SET ENVIRONMENT VARIABLE("myvariable";"value")
 LAUNCH EXTERNAL PROCESS("D:\\Perl\\bin\\perl.exe D:\\Perl\\eg\\cgi\\env.pl";$input;$output)

9. Einen Befehl in einem spezifischen Verzeichnis und ohne Anzeigen der Konsole starten:

 SET ENVIRONMENT VARIABLE("_4D_OPTION_CURRENT_DIRECTORY";"C:\\4D_VCS")
 SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")
 LAUNCH EXTERNAL PROCESS("meinBefehl")

10. Dem Benutzer ermöglichen, ein externes Dokument unter Windows zu öffnen:

 $docname:=Select document("";"*.*";"Wähle Datei zum Öffnen";0)
 If(OK=1)
    SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")
    LAUNCH EXTERNAL PROCESS("cmd.exe /C start \"\" \""+$docname+"\"")
 End if

Wurde der Befehl korrekt ausgeführt, wird die Systemvariable OK auf 1 gesetzt. Tritt ein Fehler auf, wie z.B. Datei nicht gefunden, Speicher reicht nicht aus, wird sie auf 0 (Null) gesetzt.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Werkzeuge
Nummer: 811

Dieser Befehl ändert die Systemvariable OK

 
GESCHICHTE 

Erstellt: 4D 2004

 
SIEHE AUCH 

SET ENVIRONMENT VARIABLE

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v11 SQL Release 6)
4D Programmiersprache ( 4D v12.4)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)