• ベストアンサー

VB.NET 自プログラムのプロセス終了のイベント

こんにちは 自プログラム(画面)のプロセスの終了時に、そのイベントを 自プログラムでキャッチするにはどうしたらよういのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

> プロセスを強制終了した場合もイベントは拾う事ができるのでしょうか? プロセスの強制終了は、正常にアプリケーションを終了したわけではないので、 走行しませんし、そのような状態を捕捉するイベントもありません。 .NET Framework(CLR)のエラーが発生して異常終了したからといって、後続の処理が 走行しないのと一緒です。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

VB.NET 2.0以上に限るけど(VS2002やVS2003は不可、VS2005、2008、2010、2012のみ)、終了しつつある時にそれが分かればいいのであればMy.Shutdownイベントに応答すればよかよ。 プロジェクトを右クリックしてプロパティ→アプリケーションタブのアプリケーションイベントの表示(I)→ApplicationEvents.vbがプロジェクト直下にできる→(MyApplicationイベント)のShutdownをプルダウンから選ぶ→MyApplication_Shutdown() Handles Me.Shutdownが出来上がるのでそこにプログラムを書く→バッチグー。ちなみにこのイベントは「もう終わる事が決定した後」で呼び出されるので、このイベントで終了を回避(終了しますかとかYes/Noダイアログを出して、Noを選んだら終了しない)という事はできない。 同じくプロジェクトのプロパティでアプリケーションフレームワークを無効にして、プログラムのエントリポイントをSub Mainにすると全部自分で制御できるようになりますが上級者向けなので興味があれば調べてみてください。

NoMusicNoLife49
質問者

お礼

ご回答頂きアリガトウございます。 是非参考にさせて頂きます。

NoMusicNoLife49
質問者

補足

ご回答頂きありがとうございます。 プロセスを強制終了した場合もイベントは拾う事ができるのでしょうか?

すると、全ての回答が全文表示されます。
回答No.1

んと、スタートアップオブジェクトを変えればいいのでは。 Public Class Class1 ' これがエントリーポイント <STAThread> _ Public Shared Sub Main() Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) Application.Run(New Form1()) ' ここから、Form1が終了したあとの処理 Console.WriteLine("プロセス終了前の処理") End Sub End Class

NoMusicNoLife49
質問者

お礼

ご回答頂きアリガトウございます。 是非参考にさせて頂きます。

すると、全ての回答が全文表示されます。

関連するQ&A