принудительное выключение компьютера через с++
есть функция WinExec("shutdown -s -t 0", SW_HIDE); но она не выключает компьютер сразу а закрывает файлы сначала или же может не выключить пока запущены приложения -> Как сделать так что бы компьютер(ноутбук) выключался принудительно???
Ответы (2 шт):
На самом деле, команда котрую Вы выполняете - это shutdown -s -t 0, а WinExec - это всего - навсего запускалка консольной команды.
Если написать shutdown /? - то Вы увидите множество ключей этой команды. Самым подходящим для того, что Вы хотите сделать является ключик -f - "Force running applications to close without forewarning users. The /f parameter is implied when a value greater than 0 is specified for the /t parameter." - то есть, параметр -f подразумевается, когда в t указывается значение больше нуля.
Либо -f укажите, либо 0 замените на положительное число.
Еще можно использовать ключик -p - "Turn off the local computer with no time-out or warning."
Еще - если это Ваш компьютер - можно установить пакет sysinternals suite, который добавляет в винду много полезных команд, в частности, PsShutdown. И у psshutdown есть собственный набор ключей.
Есть еще вариант — на компьютере в реестр внести следующее:
[HKEY_CURRENT_USER\Control Panel\Desktop]
"AutoEndTasks"="1"
"WaitToKillAppTimeout"="5000"
[HKEY_USERS\.DEFAULT\Control Panel\Desktop]
"AutoEndTasks"="1"
"WaitToKillAppTimeout"="5000"
Это автоматическое убиение всех задач при выключении, если не выключатся сами в течение 5 секунд.