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 появилась устойчивая тенденция к тому, чтобы " cmdlet
s" были доступны в том, что делает практически все, и наконец дает Windows последовательную, богатую среду командной строки. Я не знаю команды Powershell, чтобы усыпить Windows, но я уверен, что она есть.
Я могу быть ужасно неправ/неполн в любой или большей части этой информации (программист IANA Windows), я уверен, что другие прокомментируют, и вам стоит прочитать эти комментарии.