プロセス終了まで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