2012年4月17日火曜日

VBでプログラムが終了したことを検知する

System.Diagnostics.Processクラスを使ってプログラムを起動した場合、終了イベントを検知することができます。
設定だけなんでメモ程度に。
// ボタンを押してプログラムを起動
private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    Dim wProc As Process = Process.Start("Notepad")

    // イベントを発生させるためにTrueにしておく
    wProc.EnableRasingEvents = True

    // イベントハンドラの追加
    AddHandler wProc.Exited, AddressOf Me.Proc_Exited
End Sub

// プログラム終了イベント
Private Sub Proc_Exited(ByVal sender As Object, ByVal e As EventArgs)
    Dim wProc As Process = DirectCast(e, Process)

    Console.WriteLine("Exit Time: {0}, Exit Code: {1}", wProc.ExitTime, wProc.ExitCode)
End Sub

忘れがちなのは EnableRasingEvents を True に設定しておくことぐらいかなと思います。
ExitTime はプログラムが終了した時間、ExitCodeではプログラムが正常終了なのかどうかの判断として使うことができます。正常終了時は通常「0」が入ります。


0 件のコメント:

コメントを投稿