ホーム > カテゴリ > Visual Basic >

アプリケーションの終了を検知する

アプリケーションの終了を検知するサンプルです。

サンプルの実行画面

ソースコード

[Process.frm]

'GetExitCodeProcess =>指定したアプリケーションのプロセスの終了の値を取得する

'<引数>
'hProcess:      プロセスのハンドル
'lpExitCode:    終了の値が入いる変数

'@戻り値@
'正常終了のとき0 以外

Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal PROCESS As Long, lpExitCode As Long) As Long


'OpenProcess =>既存(動作しているアプリケーション)のプロセスオブジェクトのハンドルを返す

'<引数>
'dwDesiredAccess:    アクセス方法を示す変数
'bInheritHandle&:   1のときカレントプロセスを継承する
'dwProcessId:        プロセス ID

'@戻り値@
'正常終了のとき:      プロセスのハンドル

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long


Private Sub Command1_Click()
 
      Dim INST        As Long
      Dim PROCESS As Long
      Dim MODORITI As Long
      Dim ENDWORK As Long

 INST = Shell("Calc.EXE", 2)

'プロセスを取得する
 PROCESS = OpenProcess(1024 Or 1048576, True, INST)

'閉じられるまで処理を中断(ループさせる)
  Do While 1
       
       MODORITI = GetExitCodeProcess(PROCESS, ENDWORK)
    
    '終了したら処理中断(ループ)を解除する
       If ENDWORK <> 259 Then
          MsgBox "電卓(Calc.exe)が終了されました。"
          Exit Do
       End If
  
  Loop

End Sub

ソースコード一式のダウンロード

vbapi_process.zip 1.16 KB (1,198 バイト)

このサンプルの動作環境について

このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。





関連記事



公開日:2015年03月05日
記事NO:00389