53

Windows がシャットダウン (または再起動) されたとき、またはユーザーがログオフしたときを検出する必要があります。アプリケーションを閉じる前に、アプリケーションを適切に閉じる必要があります。Windows が閉まっているときに終了アプリケーション イベントが発生しないことに気付きました。

Is there a way in c# to detect a Windows shutdown/logoff and cancel that action (after ask the user)の投稿を読みました

しかし、閉じる前にどこで操作を行うべきかわかりません。ありがとう。

4

3 に答える 3

68

イベント ハンドラー メソッドをSystemEvents.SessionEndingeventにアタッチすると、イベントが発生するたびにハンドラー メソッドが呼び出されます。このイベントを処理すると、必要に応じて、保留中のログオフまたはシャットダウンをキャンセルできます。(ただし、現在のオペレーティング システムのように実際には機能しません。詳細については、MSDN のドキュメントを参照してください。)

イベントをキャンセルするのではなく、適切に対応するだけの場合は、代わりにSystemEvents.SessionEndedイベントを処理する必要があります。

ただし、これらは両方とも静的イベントであるため、アプリケーションを閉じるときにイベント ハンドラーをデタッチする必要があります。

于 2011-07-23T11:02:31.653 に答える