アプリケーションの終了を検知する
アプリケーションの終了を検知するサンプルです。
サンプルの実行画面
ソースコード
[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