アプリケーションの終了を検知する
アプリケーションの終了を検知するサンプルです。
サンプルの実行画面
ソースコード
[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
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









