プロセス終了までWaitする

 



Option Explicit

Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = &HFFFF

'Windows API関数
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
'
'引数:プロセスID(Shell関数の戻り値)
'
'
'
Public Sub WaitForProccess(pid As Long)
Dim phnd As Long

'プロセスハンドルを取得する
phnd = OpenProcess(SYNCHRONIZE, 0, pid)
If phnd <> 0 Then
'待機する
Call WaitForSingleObject(phnd, INFINITE)
'ハンドルを閉じる
Call CloseHandle(phnd)
End If

End Sub


トップページに戻る

Tips一覧に戻る