How to Use ExitWindowsExec() in VB to Run MS-DOS Batch File
ID: Q147806
|
The information in this article applies to:
-
Microsoft Visual Basic Professional and Enterprise Editions, 16-bit only, for Windows, version 4.0
SUMMARY
The ExitWindowsExec() function terminates Windows, runs a specified MS-DOS
application, and then restarts Windows. The information in this article
shows you how to call this function from Microsoft Visual Basic.
MORE INFORMATION
The ExitWindowsExec() function is typically used by installation programs
to replace components of Windows that are active when Windows is running.
Normally, you'd want to run an MS-DOS batch file that performs the file
copying while Windows is temporarily shut down. The declaration for
ExitWindowsExec() is as follows:
' Place the following declaration on one, single line:
Private Declare Function ExitWindowsExec Lib "User" (ByVal lpszExe As String,
ByVal lpszParams As Any) As Integer
First Parameter: lpszExe$
The first parameter for ExitWindowsExec(), lpszExe$, should be a string
containing the fully qualified path to the executable file you want to run.
This string must contain no more than 127 characters. For batch files,
you'll need to specify COMMAND.COM as the file -- C:\DOS\COMMAND.COM. To
get the fully qualified path in Visual Basic to COMMAND.COM, you can use
the Environ$ function:
lpszExe$ = Environ$("COMSPEC")
For more information on the Environ$ function, please refer to the
Microsoft Visual Basic Language Reference or the Help menu.
Second Parameter: lpszParams$
The second parameter for ExitWindowsExec(), lpszParams$, should be a string
containing any necessary parameters for the executable file. If no
parameters are necessary, pass a long integer 0 such as 0&.
To execute a batch file, however, this is where you specify the path to the
batch file and any parameters it needs. Also, you need to preface the
string with the /c switch which tells MS-DOS to invoke a copy of
COMMAND.COM. Here is an example:
lpszParams$ = "/C C:\DIRNAME\GENERIC.BAT PARAMETER1 PARAMETER2"
The return value of this function is False when the function fails.
Step-by-Step Example
- Using either NotePad in Windows or Edit in MS-DOS, create a batch file
in the root directory of your hard disk called C:\RUNIT.BAT. Give it
the following contents:
@echo off
echo Making Backup of autoexec.bat
copy c:\autoexec.bat c:\*.bak
echo Done
- Start a new project in Visual Basic (Alt, F, N). Form1 is created
by default.
- Add the following declaration to the General Declarations section
of the form:
' Place the following declaration on one, single line:
Private Declare Function ExitWindowsExec Lib "User" (ByVal lpszExe As String, _
ByVal lpszParams As Any) As Integer
- Add a command button (Command1) to the form, and place the following
code in the Click() event.
Private Sub Command1_Click ()
sComspec$ = Environ$("COMSPEC")
ret% = ExitWindowsExec(sComspec$, "/c c:\runit.bat")
End Sub
- Save the project (Alt, F, V). Then press the F5 key to run the program.
Click the command button to exit Windows, run the batch file, and then
restart Windows.
Additional query words:
vbwin vb416 4.00
Keywords : kbcode kbWndw
Version : 4.00
Platform : WINDOWS
Issue type :
Last Reviewed: June 24, 1999