Srinimusuku
Dec 8th, 2000, 12:13 PM
Hi there,
I opened a program(command.com) using the SHELL function in VB.
I want to wait until the user closes the command.com program and then continue executing the remaining VB code.
I know i can use an API for this, but do not know exactly what API.
Can anybody please tell me what API to use and how to use it.
Thanks in advance.
Srini
This code should work, I tested it and it worked for me, so it should work for you :rolleyes:.
Private Declare Function OpenProcess Lib "Kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "Kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400
'JobtoDo - Program to run
Sub Shell32Bit(ByVal JobToDo As String)
Dim hProcess As Long
Dim RetVal As Long
'The next line launches JobToDo as icon,
'captures process ID
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(JobToDo, 1))
Do
'Get the status of the process
GetExitCodeProcess hProcess, RetVal
'Sleep command recommended as well as DoEvents
DoEvents: Sleep 100
'Loop while the process is active
Loop While RetVal = STILL_ACTIVE
Msgbox "App has been unloaded!"
End Sub
Usage
Private Sub Command1_Click()
Call Shell32Bit("Command.com /k edit")
End Sub