Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Public Const SYNCHRONIZE = &H100000
Public Const INFINITE = &HFFFFFFFF
Sub WaitProcess()
Dim Pid As String
Dim pHnd As String
Pid = Shell("C:\Windows\system32\notepad.exe", vbNormalFocus) ' Shell 傳回 Process Id
pHnd = OpenProcess(SYNCHRONIZE, 0, Pid) ' 取得 Process Handle
If pHnd <> 0 Then
Call WaitForSingleObject(pHnd, INFINITE) ' 無限等待,直到程式結束
DoEvents '暫停執行,以便讓作業系統可以處理其它的事件。
Call CloseHandle(pHnd)
End If
End Sub