.NET で、(古いアプリケーションを閉じるのではなく) Windows にシャットダウン コマンドが与えられたためにアプリケーションが閉じているかどうかを確認して、一時キャッシュ ファイルを書き出すか、プロンプトを表示するのに十分な時間シャットダウンをブロックすることさえできますか?ユーザー入力?
私の現在の範囲には Winform アプリと Windows サービスが含まれていますが、可能であれば一般的な方法でこれを理解することに興味があります。
SystemEvents.SessionEndingは、適切な出発点のように見えます。その記事では、ログアウト/シャットダウンが発生しているときに関連するイベント シーケンスについて説明しています。
一般に、WM_QUERYENDSESSION
Windows メッセージを処理する必要があります。これにより、アプリケーションはクリーンアップを実行したり、本当に必要な場合はシャットダウンをブロックしたりできます。
Microsoft.Win32.SystemEvents 型の SessionEnded イベントを処理します。