|
Anwendungen, die in einer DOS-Stapeldatei (Batch, .bat)
ausgeführt werden, können Rückgabewerte generieren, die im
weiteren Verlauf der Stapelbearbeitung ausgewertet werden können -
so genannte "Error"-Codes. Auch Visual Basic-Anwendungen
lassen sich in einer Stapeldatei ausführen, wenn sie unter Windows
9x über das DOS_Hilfsprogramm "Start" mit dem Parameter
/W (als Kennung für ein Windows-Programm) aufgerufen werden.
Visual Basic bietet selbst keine Möglichkeit, solche Error-Codes
zu generieren. Aber über die API-Funktion ExitProcess
können Sie einen Error-Code generieren.
Private Declare Sub ExitProcess Lib "kernel32" _
(ByVal Errorlevel As Long)
Sie übergeben ihr als Parameter einfach einen beliebigen
Long-Wert, dessen Bedeutung Sie dann in der Stapeldatei
interpretieren können, zum Beispiel:
ExitProcess 2
In der Stapeldatei müssen die Error-Codes in umgekehrter
Reihenfolge der Größe nach getestet werden. Ein Aufruf Ihrer
Anwendung und die anschließende Auswertung des
"Errorlevels" (Ebene, Größe des Error-Codes) könnte
etwa so aussehen:
START /W IhreAnwendung.exe
IF ERRORLEVEL 5 GOTO Errlevel5
IF ERRORLEVEL 4 GOTO Errlevel4
IF ERRORLEVEL 3 GOTO Errlevel3
IF ERRORLEVEL 2 GOTO Errlevel2
IF ERRORLEVEL 1 GOTO Errlevel1
ECHO ErrorLevel = 0
GOTO Enden
:Errlevel1
ECHO ErrorLevel ist 1
GOTO Enden
:Errlevel2
ECHO ErrorLevel ist 2
GOTO Enden
:Errlevel3
ECHO ErrorLevel ist 3
GOTO Enden
:Errlevel4
ECHO ErrorLevel ist 4
GOTO Enden
:Errlevel5
ECHO ErrorLevel ist 5
:Enden
Beachten Sie bitte, dass die Verwendung der ExitProcess-Funktion
einer Verwendung der VB-Anweisung "End" gleichkommt. Wie
bei dieser wird die Anwendung radikal beendet. Nach dem Aufruf der
Funktion wird keinerlei Code mehr ausgeführt. Selbst die
Form-Ereignisse QueryUnload, Unload und Terminate werden nicht mehr
ausgelöst, und weder Klassen noch Controls erhalten ihre
Terminate-Ereignisse. Sie sollten also dafür sorgen, dass bereits
vorher alles "aufgeräumt" ist.
|