Выход из системы
Функция 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 , находится в каком-то другом сеансе входа, создаются только уведомления; никакие процессы не завершаются.
Связанные темы