アプリケーションが終了したかどうかを判断する
System.Diagnostics.Processクラスで起動したプログラムを、呼び出し側で終了したか確認する方法を説明します。
プロセスのインスタンスの、HasExitedプロパティを使用します。
HasExitedプロパティは、プログラムが終了している場合はTrueです。
HasExitedプロパティによる判断
'アプリケーションを起動して、Processのインスタンスを取得する Dim hPros As System.Diagnostics.Process = System.Diagnostics.Process.Start("Notepad") '5秒ほど待機する(この間に起動したアプリケーションを終了させてください) System.Threading.Thread.Sleep(5000) '起動したプログラムが終了したかどうかを判断する If hPros.HasExited Then MessageBox.Show("終了しています") Else MessageBox.Show("終了していません") End If '不要になった時点で破棄する hPros.Close() hPros.Dispose()
アプリケーションが終了したことをイベントで通知する
System.Diagnostics.Processクラスで起動したプログラムを、呼び出し側で終了をイベントで確認する方法を説明します。
プロセスのインスタンスの、EnableRaisingEventsプロパティを使用します。
EnableRaisingEventsプロパティを Trueにし追加したイベントを呼び出します。
イベントハンドラによる終了判断
'アプリケーションを起動して、Processのインスタンスを取得する Dim hPros As System.Diagnostics.Process = System.Diagnostics.Process.Start("Notepad") ' このプログラムが終了した時に Exited イベントを発生させる hPros.EnableRaisingEvents = True 'Exited イベントハンドラを追加する AddHandler hPros.Exited, AddressOf Prog_Exited
'アプリケーションが終了したことを通知するイベント Private Sub Prog_Exited(ByVal sender As Object, ByVal e As System.EventArgs) MessageBox.Show("終了しました") End Sub