Какую команду Windows 8 использует для перевода компьютера в спящий режим?

Какую команду Windows 8 использует для перевода компьютера в спящий режим?

shutdown.exeДля завершения работы и перезагрузки отлично подходят сочетания клавиш:

C:\Windows\System32\shutdown.exe /s /t 00

C:\Windows\System32\shutdown.exe /r /t 00

Я не хочу переходить в спящий режим, но хочу переходить в ждущий режим, как в Windows XP, одним двойным щелчком на рабочем столе.

В Win 8 для перехода в режим сна требуется больше усилий, чем необходимо.


Итак, я прочитал, что rundll32для перехода в режим ожидания нужно использовать следующую команду, и что режим гибернации должен быть выключен, поэтому я сделал следующее в файле .bat с ярлыком для него. Мне по-прежнему нужно нажать кнопку питания, чтобы включить компьютер, а не нажимать клавишу на клавиатуре или двигать мышью:

C:\Windows\System32\powercfg -hibernate off

C:\Windows\System32\rundll32.exe powrprof.dll,SetSuspendState 0,1,0

PsShutdownотлично работает для всех трех: Shutdown, Restart и Standby.
Я сейчас используюPsShutdown v2.52:

"C:\Program Files\Standby\psshutdown.exe" -k -t 0

"C:\Program Files\Standby\psshutdown.exe" -r -t 0

"C:\Program Files\Standby\psshutdown.exe" -d -t 0

Мне бы хотелось узнать, какую команду Windows 8 использует для перевода компьютера в спящий режим?

Это строковая команда? Где ее найти? Как понять, что это?

Думаю, я бы использовал командную строку, потому что это проще, чем использовать другую программу.

Windows 8 как-то справляется с этой работой. Может быть, это действительно сложнее сделать, чем использовать пару команд в строке.

решение1

Я решил, что буду использовать Classic Shell - текущая версия 3.6.2 - работает отлично.

решение2

Я также попробовал:

C:\Windows\System32\rundll32.exe powrprof.dll,SetSuspendState 0,1,0

но он выключается вместо сна/ожидания

НО спасибоPsShutdown.exe, как указано выше, с определенным ключом:

"C:\Program Files\Standby\psshutdown.exe" -d -t 0

РАБОТАЕТ КАК В РЕЖИМЕ ОЖИДАНИЯ или СНА, как и должно быть.

Спасибо

решение3

Похоже, вы ожидаете, что все будет работать как в Linux.

Командная строка широко используется большинством программ Linux, и действительно, большую часть времени многие программы и диалоговые окна фактически создают команду, которая затем выполняется — на самом деле это загрузка исполняемого файла с указанием его аргументов «командной строки».

Windows не придерживается той же традиции, и обычно, когда Windows «раскрывает» функциональность, это происходит через DLL или интерфейсы COM, или, в последнее время, объекты .NET. Поэтому вместо вызова команды Windows гораздо более вероятно вызывает функцию DLL (в некоторых случаях по порядковому номеру, а НЕ по имени), метод объекта COM или .NET.

Эта штука доступна вам, непрограммисту, через rundll32(но обычно не очень хорошо документированную) COM API (лучше быть готовым прочитать много документации, понять объектно-ориентированное программирование), который доступен через Windows Script Host (еще один уровень компонентов, дополнительно доступных конечному пользователю через wscript.exeи/или cscript.exe) и .NET (для этого разберем Powershell и Visual Studio). Многие из апплетов панели управления и т. п., explorer.exeвероятно, делают системные вызовы, вызовы DLL или вызовы COM напрямую.

Звучит запутанно, и это так. Хорошая новость в том, что с появлением Powershell появилась устойчивая тенденция к тому, чтобы " cmdlets" были доступны в том, что делает практически все, и наконец дает Windows последовательную, богатую среду командной строки. Я не знаю команды Powershell, чтобы усыпить Windows, но я уверен, что она есть.

Я могу быть ужасно неправ/неполн в любой или большей части этой информации (программист IANA Windows), я уверен, что другие прокомментируют, и вам стоит прочитать эти комментарии.

Связанный контент