Rubrik: System/Windows · Prozesse/Tasks | VB-Versionen: VB4, VB5, VB6 | 28.09.02 |
Rückgabewert / Errorlevel Dieses Beispiel zeigt wie ihr VB-Programm einen Rückgabewert z.B. an eine Batch-Datei ausgeben kann. | ||
Autor: Gerhard Kuklau | Bewertung: | Views: 24.014 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Folgendes Szenario: Eine Batch-Datei ruft ein VB-Programm auf und wartet auf einen Rückgabewert. Je nach Rückgabewert (Errorlevel) werden anschließend bestimmte Anweisungen in der Batchdatei ausgeführt.
Wie aber erreicht man, dass ein VB-Programm einen solchen Errorlevel zurückgibt?
Hier hilft wieder einmal die API-Trickkiste
Fügen Sie folgende API-Deklaration in ihr VB-Programm ein:
' API-Deklaration Private Declare Sub ExitProcess Lib "kernel32" ( _ ByVal uExitCode As Long)
Auf die Form platzieren Sie drei CommandButtons (Command1, Command2 und Command3).
' Beenden ohne Rückgabewert (Errorlevel) Private Sub Command1_Click() End End Sub
' Beenden mit Rückgabewert 1 Private Sub Command2_Click() Call ExitProcess(1) End Sub
' Beenden mit Rückgabewert 2 Private Sub Command3_Click() Call ExitProcess(2) End Sub
Kompilieren Sie das Programm und erstellen im gleichen Verzeichnis eine BATCH-Datei mit folgendem Inhalt (am besten den Windows-Editor hierfür verwenden):
echo off START /WAIT projekt1.exe rem rem Jetzt wird der Errorlevel ausgewertet: rem IF ERRORLEVEL 2 goto fehler2 IF ERRORLEVEL 1 goto fehler1 ECHO . ECHO Die Anwendung hat keinen Rueckgabewert / Errrolevel ausgeloest ECHO ############################################################## goto ende :fehler1 ECHO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ECHO Die Anwendung wurde mit dem Rueckgabewert / Errrolevel 1 beendet ECHO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! goto ende :fehler2 ECHO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ECHO Die Anwendung wurde mit dem Rueckgabewert / Errrolevel 2 beendet ECHO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! goto ende :ende PAUSE
Speichern Sie die Datei unter TestError.bat ab und starten diese anschließend...