This article was previously published under Q147806
This article has been archived. It is offered "as is" and will no longer be updated.
The ExitWindowsExec() function terminates Windows, runs a specified MS-DOSapplication, and then restarts Windows. The information in this articleshows you how to call this function from Microsoft Visual Basic.
The ExitWindowsExec() function is typically used by installation programsto 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 filecopying while Windows is temporarily shut down. The declaration forExitWindowsExec() 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 stringcontaining 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. Toget the fully qualified path in Visual Basic to COMMAND.COM, you can usethe Environ$ function:
lpszExe$ = Environ$("COMSPEC")
For more information on the Environ$ function, please refer to theMicrosoft Visual Basic Language Reference or the Help menu.
Second Parameter: lpszParams$
The second parameter for ExitWindowsExec(), lpszParams$, should be a stringcontaining any necessary parameters for the executable file. If noparameters are necessary, pass a long integer 0 such as 0&.
To execute a batch file, however, this is where you specify the path to thebatch file and any parameters it needs. Also, you need to preface thestring with the /c switch which tells MS-DOS to invoke a copy ofCOMMAND.COM. Here is an example: