Dichiarazioni
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
utilizzo (DaEseguire è il programma da eseguire con la shell , in questo caso il ping)
codice:
process_id = Shell(DaEseguire, vbNormalFocus)
DoEvents
process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If