Da dichiarare in un modulo:
codice:
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Public Const INFINITE = &HFFFF ' Timeout infinito
Public Const SYNCHRONIZE = &H100000
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
lancio una applicazione e attendo che finisca l'esecuzione:
codice:
Dim process_handle As Long
Dim process_id As Long
process_id = Shell(AppDaEseguire, vbNormalFocus)
DoEvents
process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If