Отключение к 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");

Примечание: перезапуск приведет к перезапуску ядра. "Завершение работы" на самом деле не выключение и не будет. Подробнее об их логике быстрой загрузки здесь.

Другие вопросы по тегам