9

できれば Windows API を使用して、アプリケーションから OS のシャットダウンを検出 (および、必要に応じて 2. 中止) できるようにしたいと考えています。

コマンドを使用してシャットダウンを手動で中止できることはわかっていshutdown -aます。

OSがシャットダウンしようとしていることをプログラムで通知するだけで十分かもしれません-これを行う方法は?

4

2 に答える 2

6

MSDNから:

WM_QUERYENDSESSIONメッセージは、ユーザーがセッションの終了を選択したとき、またはアプリケーションがシステム シャットダウン関数のいずれかを呼び出したときに送信されます。いずれかのアプリケーションがゼロを返した場合、セッションは終了しません。WM_QUERYENDSESSION1 つのアプリケーションがゼロを返すとすぐに、システムはメッセージの送信を停止します。

したがって、私のアプリケーションの WindowProc はWM_QUERYENDSESSIONメッセージを処理して を返します0

こんなに簡単だとは思っていませんでした。おまけとして、Windows 2000 でも動作します。

于 2009-02-26T10:46:32.370 に答える
1

シャットダウンをブロックするために「単純に」0を返すことに関しては、適切な方法でそれを行いたい場合ほど単純ではありません。特にVistaでは。たとえば、http://msdn.microsoft.com/en-us/library/ms700677(VS.85).aspxもお読みください。

于 2010-03-31T11:20:06.850 に答える