Declare Function ExitWindowsEx Lib "user32" ( _ ByVal uFlags As Long, _ ByVal dwReserved As Long) As Long
ExitWindowsEx выключает или перезагружает компьютер.
EWX_LOGOFF = 0 | Завершить сеанс пользователя. Отключает от сети. Аналог - войти в систему под другим именем. (Завершение сеанса [name]) |
EWX_FORCE = 4 | Закрывает все программы без приглашения сохранить файлы |
EWX_FORCEIFHUNG | Заставляет приложения завершиться, если они не реагируют на сообщения WM_QUERYENDSESSION или WM_ENDSESSION |
EWX_POWEROFF = 8 | Завершает работу системы и, если есть возможность, выключает питание компьютера. вызывающий процесс должен иметь привилегию SE_SHUTDOWN_NAME |
EWX_REBOOT = 2 | Перезагружает компьютер. Вызывающий процесс должен иметь привилегию SE_SHUTDOWN_NAME |
EWX_SHUTDOWN = 1 | Завершает работу и выключает питание, записывает все файловые буферы на диск, останавливает все работающие системные процессы. Вызывающий процесс должен иметь привилегию SE_SHUTDOWN_NAME. Выводит сообщение, что можно выключить компьютер |
Смотри пример Программное выключение компьютера
AdjustTokenPrivileges, HandlerRoutine, SetProcessShutdownParameters