Shell 関数で起動したアプリケーションの終了を認識する方法
 
   
 プロシージャ名: TaskEnd
このサンプルは、このサンプルではメモ帳を起動し、メモ帳での処理終了後、メッセージボックスを表示させています。

  ----------------------------------------------------------------------------
  Public Declare Function GetExitCodeProcess Lib "kernel32" _
      (ByVal hProcess As Long, lpExitCode As Long) As Long
  Public Declare Function OpenProcess Lib "kernel32" _
      (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
      ByVal dwProcessID As Long) As Long
  Public Const PROCESS_QUERY_INFORMATION = &h400
  ----------------------------------------------------------------------------
  Sub TaskEnd()
      Dim dwProcessID As Long
      Dim hProcess As Long
      Dim lpdwExitCode As Long
      Dim ret As Long

      dwProcessID = Shell("C:\WINDOWS\NOTEPAD.EXE", 1)
      hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, True, dwProcessID)
      Do
        ret = GetExitCodeProcess(hProcess, lpdwExitCode)
        DoEvents
      Loop While lpdwExitCode

      MsgBox "メモ帳は終了しました。"
  End Sub
  ----------------------------------------------------------------------------