ホーム > カテゴリ > 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


この記事を書いた人

💻 ITスキル・経験
サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。

画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ
プチモンテ代表、アーティスト名:プチモンテ
🎵 音楽制作
BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~

オリジナル曲を始めました✨

YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte

【男性ボーカル】DA・KA・RA | 新たな明日が風と共に訪れる

【男性、女性ボーカル】時空を超越する先に | 時空と風の交響曲

【女性、男性ボーカル】絆 | 穏やかな心に奏でる旋律