HOWTO: Set an Error Level from a Visual Basic
Application |
The information in this article applies to:
- Microsoft Visual Basic Professional and Enterprise Editions,
32-bit only, for Windows, versions 4.0, 5.0, 6.0
SUMMARY
This article contains a sample Visual Basic application that sets
the error level upon exiting and a DOS batch file to test the
result. Visual Basic applications can also retrieve the error level
returned by another Windows application using the technique shown in
Q129796
listed below.
MORE INFORMATION
Steps to Reproduce Behavior
- Create a new Standard EXE project. Form1 is created by
default.
- Place three CommandButtons on the form (use the default
names).
- Add the following code to the General Declarations section of
Form1:
Private Declare Sub ExitProcess Lib "kernel32" _
(ByVal uExitCode As Long)
Private lExitCode As Long
Private Sub Command1_Click()
lExitCode = 50& 'Button labeled "50"
Unload Me
End Sub
Private Sub Command2_Click()
lExitCode = 100& 'Button labeled "100"
Unload Me
End Sub
Private Sub Command3_Click()
lExitCode = 150& 'Button labeled "150"
Unload Me
End Sub
Private Sub Form_Load()
Command1.Caption = "50"
Command2.Caption = "100"
Command3.Caption = "150"
End Sub
Private Sub Form_Terminate()
' Call ExitProcess as the last action before closing
' otherwise it prevents proper clean up
ExitProcess lExitCode
End Sub
- Save your Project and Make an executable named Project1.EXE.
- Create the following batch file named errlevel.bat in your
project directory:
echo off
start /w project1
rem "start /w"
if errorlevel 150 goto 150
if errorlevel 100 goto 100
if errorlevel 50 goto 50
echo Exit Code 0
goto Done
:150
echo Exit Code 150
goto done
:100
echo Exit Code 100
goto done
:50
echo Exit Code 50
:done
echo done
- Run the batch file. When the user clicks on a CommandButton,
the application will terminate with the error level shown on the
button. The batch file will then test the error level and echo the
result to the screen.
Additional notes:
- Start /w is necessary for this to work correctly in Windows
95.
- "if errorlevel" must be in the order presented. "If the EXIT
status is less than the specified value, the specified DOS command
is executed; otherwise, processing continues with the next batch
file command."
- In order to retrieve the error level from a Visual Basic
Program instead of a DOS Batch file:
- Implement Knowledge Base article Q129796.
Modify the call to ExecCmd function in the Form_Click event to
pass "project1.exe" instead of "notepad.exe". Run the project
and click on form1 to launch project1.exe.
REFERENCES
Q129796
: HOWTO: 32-Bit App Can Determine When a Shelled Process Ends
MS-DOS Batch Files, Second edition, MS Press
Additional query words:
Keywords : kbVBp400 kbVBp500 kbVBp600 kbGrpVBDB kbDSupport
Version : WINDOWS:4.0,5.0,6.0 Platform : WINDOWS Issue
type : kbhowto Technology :
|
|
 |
|