ログオフ

ExitWindows 関数は、現在のユーザーからログオフします。 EXW_LOGOFF フラグを使用して ExitWindowsEx 関数を呼び出すこともできます。

既定では、アプリケーションで ExitWindows または ExitWindowsEx を使用してログオフすると、システムは各ウィンドウにWM_QUERYENDSESSION メッセージを送信します。 アプリケーションは、このメッセージを受信したときに TRUE を 返すことによって終了することに同意します。 このメッセージの処理中にアプリケーションが FALSE を 返した場合、ログオフ操作は取り消されます。 アプリケーションが WM_QUERYENDSESSION メッセージを処理する場合は、別のアプリケーションまたはシステムがセッション終了要求を開始した場合でも、ユーザーがログオフ操作を取り消せるようにすることができます。 例については、「現在の ユーザーからログオフする方法」を参照してください。

アプリケーションは、WM_QUERYENDSESSIONに対して TRUE を返すと、WM_ENDSESSION メッセージを受信し、他のアプリケーションがWM_QUERYENDSESSION メッセージに応答する方法に関係なく終了します。

すべてのアプリケーションを強制的に終了するには、 ExitWindowsEx を使用し、EXW_FORCE フラグを指定します。 これにより、システムは メッセージWM_QUERYENDSESSION 送信できなくなります。

また、システムはログオフ操作中にすべてのプロセスにCTRL_LOGOFF_EVENT制御信号を送信します。 コンソール アプリケーションでは、 HandlerRoutine を登録してこれらのメッセージを処理できます。

ExitWindowsEx を呼び出したプロセスが対話型ユーザーのログオン セッションで実行されている場合、ログオン セッション内のすべてのプロセスが終了します。 ExitWindowsEx を呼び出すプロセスが他のログオン セッションにある場合は、通知のみが行われます。プロセスは終了しません。

現在のユーザーからログオフする方法