返回列表 上一主題 發帖

[分享] 讓程式等待至上一個開啟的執行程式結束

[分享] 讓程式等待至上一個開啟的執行程式結束

本帖最後由 Min 於 2010-5-3 23:03 編輯

Option Explicit

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

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題