2012-01-13 10 views
0

Windowsタスクマネージャーでキャンセルすると、WPFアプリケーション内でどのイベントが発生するのかを知る必要がありますか?App by Windowsタスクマネージャをキャンセルすると、どのイベントが発生しますか?

アイデアは内部アプリケーションを終了することです。正確に仕事。

ありがとうございました!

+0

あなたは、 『アプリケーション』タブまたはの 『プロセス』タブについて話していますタスクマネージャー? –

+0

まあ...どちらもアプリをキャンセルすることがあります。私はすべてのケースを考慮する必要があります。 –

答えて

4
  • 「プロセス」タブを使用すると、プロセスが単純に終了するため、イベントは発生しません。
  • [アプリケーション]タブを使用すると、通常のWM_CLOSEメッセージがアプリケーションのトップレベルに送信されます。 WPFアプリケーションでこれを検出する方法については、最後の回答hereを参照してください。
+0

+1これを追加すると、最初のケースを「トラップ」できないのは、実際には「良いこと」です(http://blogs.msdn.com/b/oldnewthing/archive/2004/07/22/)。 191123.aspx)」を参照してください。 –

+0

タスクマネージャの[タスクの終了]ボタンをクリックすると、['EndTask'関数](http://msdn.microsoft.com/en-us/library/ms633492.aspx)が呼び出されます。それが優雅な終了であると仮定しないでください。あなたはそれについて何もできません。 –

+0

@CodyGray:タスクマネージャは、最初に 'WM_CLOSE'を使って正常終了を試みます。それが失敗した場合にのみ、強制終了します。 –

2

アイデアは内部アプリケーションを終了することです。正確に仕事。

これを確実に行うことはできません。ユーザーがそのようにアプリケーションを終了している場合、何かがひどく間違っているか、単に気にしません。あなたができることは何もありません、あなたは乾杯しています。あなた自身の後でのクリーンアップについて心配しないでください。オペレーティングシステムがそれを行います。

あなたができることは、標準のクローズイベントを処理することです。ユーザーが通常の手段またはタスクマネージャーを通じて丁寧な方法でアプリケーションを終了するように要求した場合にトリガーされます(タスクマネージャーは、「アプリケーション」タブから「タスクの終了」をクリックすると、 。しかし、私はあなたがすでにそれをやっていると仮定しているので、あなたはできる限りのことをしています。

関連する問題