ShellExec

Top  Previous  Next

Ausführen eines externen Programms, Anzeigen und Drucken von externen Datenfiles. Die Funktion regelt alle Aufrufe von externen Programmen und Daten. Sie kann:

Unter NT 4.0 ein Explorerfenster mit einem vorgegebenen Verzeichnis öffnen.

Ein Programm aufrufen, das dann parallel zu Moskito läuft.

Zu einer Datendatei automatisch das richtige Programm aufrufen und die Datendatei anzeigen.

Zu einer Datendatei automatisch das richtige Programm aufrufen und die Datendatei drucken.

Voraussetzungen

Die Variable GDS$DATA_EXTERN sollte gesetzt sein. Als Defaultwert wird der Wert „..\rahmen\extern“ verwendet.

Parameter

1. Parameter

Hier steht der Name des Programms oder der Name der Datendatei. Der Name kann alternativ mit dem Parameter PROGRAM/ (s.u.) übergeben werden

2. Parameter

Wenn als Parameter 1 ein Programm angegeben ist, dann kann als 2. Parameter angegeben werden, welche Aufrufparameter dieses Programm erhält. Alternativ können sie mit PARAMETER/ (s.u.) übergeben werden.

/PRINT

Der 1. Parameter muß eine Datendatei sein. Diese wird dann ausgedruckt. Dies funktioniert nur, wenn das mit dieser Datendatei verbundene Programm das Drucken beherrscht.

/EXPLORE

Der 1. Parameter muß ein Verzeichnis sein. Es wird dann der Explorer gestartet und sofort das angegebene Verzeichnis eingestellt.

PROGRAM/filename

Wenn der Datei- bzw. Programmname nicht als 1. Parameter übergeben wurde, dann kann er mit diesem Parameter übergeben werden.

PARAMETER/parameter

Wenn die Aufrufparameter für das zu startende Programm nicht als 2. Parameter übergeben wurden, dann können sie mit diesem Parameter übergeben werden.

/PROCESS

Ist dieser Schalter aktiv, so können nur Programm-, nicht aber Datendateien gestartet werden. Dafür ist es (mit dem Schalter /WAIT s.u.) möglich, Moskito auf das Ende des Programms warten zu lassen.

/WAIT

Moskito wartet auf das Ende des gestarteten Programms, vorausgesetzt der Schalter /PROCESS ist aktiviert.

Rückgabewert

Wert

Beschreibung

0

Bei /PROCESS: Aufruf wurde erfolgreich durchgeführt

1

Bei /PROCESS: Fehler aufgetreten

>32

Ohne /PROCESS: Aufruf wurde erfolgreich durchgeführt

<=32

Ohne /PROCESS: Fehler aufgetreten

Beispiel

Befehl eingeben: ShellExec c:\TEMP /EXPLORE

Aufruf der Explorers und das Verzeichnis c:\temp wird sofort angezeigt.

Befehl eingeben: ShellExec DATEN.TXT

Anzeigen der Datei \Moskito\rahmen\extern\Daten.txt

Befehl eingeben: ShellExec DATEN.TXT /PRINT

Drucken der Datei \Moskito\rahmen\extern\Daten.txt

Befehl eingeben: ShellExec notepad.exe daten.txt

Aufruf eines Programms mit Parameter

Befehl eingeben:

ShellExec C:\Programme\prg.exe “xxx p1 p2“ /proc /wait

Aufruf eines Programms mit den Schaltern /PROCESS und /WAIT und zwei Parametern p1 und p2 (s.u. bei Bemerkung zu dem “xxx“).

Befehl eingeben: ShellExec s_concat( PROGRAM/ s_getOneArg(1 enumFiles(s_concat( GetEnvironment( PATH /RETURN ) \\x) *\\CMD.EXE))) "PARAMETER//C ..\x.cmd" /WAIT /PROCESS

Ruft das DOS-Skript x.cmd im Moskito Hauptverzeichnis auf und wartet auf das Ergebnis.

Bemerkung

Beim Schalter /PROCESS muß der Programmname mit seinem vollständigen Pfad und mit Dateiendung angegeben werden. Außerdem wird der erste Aufrufparameter ignoriert. Vor dem ersten Parameter muß deshalb ein beliebiger Wert hinzugefügt werden.

Enthält einer der Aufrufparameter für das Programm das Zeichen ‚/‘, dann müssen sie mittels PARAMETER/ übergeben werden, damit sie korrekt ausgewertet werden.

Siehe auch