Поделиться через


Выход из системы

Функция ExitWindows выходит из системы текущего пользователя. Вы также можете вызвать функцию ExitWindowsEx с флагом EXW_LOGOFF.

По умолчанию, когда приложение использует ExitWindows или ExitWindowsEx для выхода, система отправляет сообщение WM_QUERYENDSESSION в каждое окно. Приложения согласны завершать работу, возвращая TRUE при получении этого сообщения. Если какое-либо приложение возвращает FALSE при обработке этого сообщения, операция выхода отменяется. Если ваше приложение обрабатывает сообщение WM_QUERYENDSESSION, вы можете разрешить пользователю отменить выход из системы, даже если другой программой или системой был инициирован запрос о завершении сеанса. Пример см. в разделе Как выключитьтекущего пользователя.

Когда приложение возвращает TRUE для WM_QUERYENDSESSION, оно получает сообщение WM_ENDSESSION и завершается независимо от того, как другие приложения реагируют на сообщение WM_QUERYENDSESSION.

Чтобы принудительно завершить работу всех приложений, используйте ExitWindowsExи укажите флаг EXW_FORCE. Система предотвращает отправку сообщений WM_QUERYENDSESSION.

Система также отправляет сигнал управления CTRL_LOGOFF_EVENT каждому процессу во время операции выхода. Консольное приложение может зарегистрировать подпрограмму HandlerRoutine для обработки этих сообщений.

Если процесс, который вызывается ExitWindowsEx выполняется в сеансе входа интерактивного пользователя, все процессы в сеансе входа завершаются. Если процесс, вызывающий ExitWindowsEx, находится в другом сеансе входа, то создаются только уведомления; процессы не завершаются.

Как выйти из аккаунта текущего пользователя