Cuando cierra la aplicación
Debés chequear el estado del proceso que abris.
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
Sub CAllShell32(ByVal JobToDo As String)
Dim hProcess As Long
Dim RetVal As Long
'Captura el processID
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(JobToDo, 1))
Do
'Toma el estado del poceso
GetExitCodeProcess hProcess, RetVal
DoEvents: Sleep 100
'Vuelve al ciclo si el proceso está activo
Loop While RetVal = STILL_ACTIVE
MsgBox "se cerró la aplicación"
End Sub
Private Sub Command1_Click()
CAllShell32 Text1.Text
End Sub
Colocá en tu Form un textBox con la propiedad .text = "calc.exe"