Windowsタスクマネージャーでキャンセルすると、WPFアプリケーション内でどのイベントが発生するのかを知る必要がありますか?App by Windowsタスクマネージャをキャンセルすると、どのイベントが発生しますか?
アイデアは内部アプリケーションを終了することです。正確に仕事。
ありがとうございました!
Windowsタスクマネージャーでキャンセルすると、WPFアプリケーション内でどのイベントが発生するのかを知る必要がありますか?App by Windowsタスクマネージャをキャンセルすると、どのイベントが発生しますか?
アイデアは内部アプリケーションを終了することです。正確に仕事。
ありがとうございました!
WM_CLOSE
メッセージがアプリケーションのトップレベルに送信されます。 WPFアプリケーションでこれを検出する方法については、最後の回答hereを参照してください。+1これを追加すると、最初のケースを「トラップ」できないのは、実際には「良いこと」です(http://blogs.msdn.com/b/oldnewthing/archive/2004/07/22/)。 191123.aspx)」を参照してください。 –
タスクマネージャの[タスクの終了]ボタンをクリックすると、['EndTask'関数](http://msdn.microsoft.com/en-us/library/ms633492.aspx)が呼び出されます。それが優雅な終了であると仮定しないでください。あなたはそれについて何もできません。 –
@CodyGray:タスクマネージャは、最初に 'WM_CLOSE'を使って正常終了を試みます。それが失敗した場合にのみ、強制終了します。 –
アイデアは内部アプリケーションを終了することです。正確に仕事。
これを確実に行うことはできません。ユーザーがそのようにアプリケーションを終了している場合、何かがひどく間違っているか、単に気にしません。あなたができることは何もありません、あなたは乾杯しています。あなた自身の後でのクリーンアップについて心配しないでください。オペレーティングシステムがそれを行います。
あなたができることは、標準のクローズイベントを処理することです。ユーザーが通常の手段またはタスクマネージャーを通じて丁寧な方法でアプリケーションを終了するように要求した場合にトリガーされます(タスクマネージャーは、「アプリケーション」タブから「タスクの終了」をクリックすると、 。しかし、私はあなたがすでにそれをやっていると仮定しているので、あなたはできる限りのことをしています。
タスクマネージャからイベントを処理することは、アプリケーションの正常なシャットダウンには機能しません。
しかし、あなたはリンクの下で、MSDNで説明されているイベントをSessionEndingアプリケーションクラスを処理しようとすることができます:
http://msdn.microsoft.com/en-us/library/system.windows.application.sessionending.aspx
あなたは、 『アプリケーション』タブまたはの 『プロセス』タブについて話していますタスクマネージャー? –
まあ...どちらもアプリをキャンセルすることがあります。私はすべてのケースを考慮する必要があります。 –