Отключение к PowerState S4
Мне нужно завершить работу из своего приложения WPF и убедиться, что машина переходит в то же состояние питания, что и в традиционном диалоговом окне выключения Windows.
Я могу отключиться до неизвестного состояния питания с помощью следующего:
Process.Start("shutdown", "/s /t 0");
Проблема заключается в том, что при использовании этого процесса выключения при загрузке обратно нажатием кнопки питания блок питания потребляет менее 100 миллиампер (обычно от 80 до 85), в отличие от ~300 миллиампер, отображаемых после использования диалогового окна для выключения.
Использование диалогового окна "Выключение" для выключения по умолчанию в Windows 8 в соответствии с перечислением "Состояния питания системы" - S4.
Я хотел бы завершить работу в том же состоянии S4, не вынуждая пользователя делать дополнительные действия, нажимая кнопку "ОК" для завершения работы в диалоговом окне и т. Д.
Замечания:
Я могу вызвать диалог, запустив следующий VBScript, но предпочел бы не идти по этому пути:
Вызов
Process.Start(@"C:\PathToScript\Shutdown.vbs");
VB Script
dim objShell
set objShell = CreateObject("shell.application")
objshell.ShutdownWindows
set objShell = nothing
1 ответ
Я обнаружил, что это связано с новой функцией Windows 8 под названием "Гибридное отключение". Это ближе к Hybernate, чем фактическое отключение. К счастью, команда shutdown принимает / hybrid для входа в этот режим, имитируя закрытие диалогового окна Windows 8.
Process.Start("shutdown", "/s /f /hybrid /t 0");
Примечание: перезапуск приведет к перезапуску ядра. "Завершение работы" на самом деле не выключение и не будет. Подробнее об их логике быстрой загрузки здесь.