トップ回答者
ApplicationExitイベントハンドラが働かないが、原因がわかりません。

質問
-
こんにちは。VB2008でソフトを作成しています。
以下のような宣言でアプリケーション終了時の処理を作りました。
作成後、うまく動作していましたが、なぜか今日動作していないことに気づき、
原因が分かりません。どなたかヒントをいただけると助かります。
よろしくお願いします。
★追記 5/29 同じプログラムで、別のパソコン上では正常に動作しました。 VBの設定で、同機能が有効、無効と違いがでるのでしょうか?
フォームのLoadイベントハンドラ
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _ Handles MyBase.Load 'ApplicationExitイベントハンドラを追加
AddHandler Application.ApplicationExit, AddressOf Application_ApplicationExit End Sub
'ApplicationExitイベントハンドラ
Private Sub Application_ApplicationExit(ByVal sender As Object, ByVal e As EventArgs) MessageBox.Show("アプリケーションが終了されます。") 'ApplicationExitイベントハンドラを削除RemoveHandler Application.ApplicationExit, AddressOf Application_ApplicationExit End Sub
- 編集済み BasicVisual 2012年5月29日 0:06 補足追記
回答
-
ApplicationExitイベントハンドラの追加を、Application.Runメソッドを呼び出す前に行った場合どうなりますか?
また、終了時にはMy.Application.Shutdownイベントも使えるようです。(参考)
アプリケーションの開始時または終了時に行う処理を記述する
http://dobon.net/vb/dotnet/programing/applicationstart.html★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
すべての返信
-
> コードは同じで、動作が違うのでPC環境に違いがありそうです。
その「コード」というのは、
あなたの最初の投稿にあるようなメッセージボックスを出すだけのコードなのですか?
それとも何か他の処理もしているものですか(普通はログ書いたりするとおもいますが)?
というのが私の質問です。
なぜそれを聞くかというと、どこを根拠にApplicationExitイベントが起きていない、
という判断をされたのかわからないからです。
多分、最初の投稿の、超単純なコードで試されたので
ApplicationExitイベントが起きていないと判断されたのだと思いますが、
もしそうでないなら他の原因がコード内にありうると思います。
あと、他のマシンで動いているexeと問題のexeがそもそも同じじゃない、っていうこともありえます。
> この機能をON、OFFする設定
どの機能でしょうか。
シャットダウンモードというのがありましたが、これは関係しているのかな? -
ApplicationExitイベントハンドラの追加を、Application.Runメソッドを呼び出す前に行った場合どうなりますか?
また、終了時にはMy.Application.Shutdownイベントも使えるようです。(参考)
アプリケーションの開始時または終了時に行う処理を記述する
http://dobon.net/vb/dotnet/programing/applicationstart.html★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
-
こんにちは。
ご回答ありがとうございます。
もともとは、もっと沢山記述した大きなプログラムで、この問題が発生しました。
そこで原因を突き止めるために、単純化したコード群(投稿したものと同じ)を動作させたところ、2つのパソコンで片方は動作、もう一つは動作せずとなりました。
>あと、他のマシンで動いているexeと問題のexeがそもそも同じじゃない、っていうこともありえます。
デバッグモードで動作確認しています。
>どの機能でしょうか。
>シャットダウンモードというのがありましたが、これは関係しているのかな?ウインドウ右上のコントロールボックス(最大、最小、閉じる)ボタンの有効、無効プロパティみたいなものが、あるかも知れないと思ったもので、質問させていただいた次第です。
よろしくお願いします。
-
こんにちは、BasicVisual さん。
MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
その後いかがでしょうか。
継続したご質問がないようなので、勝手ながら私のほうで参考になったのではと思われる投稿に回答としてマークさせていただきました。
情報くださったみなさん、ありがとうございます。
もしまだ解決していない場合には、現在の状況など情報更新して質問を続けてくださいね。
今後とも MSDN フォーラムをよろしくお願いいたします。それでは。
____________
日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海