Какую команду использовать, чтобы перевести компьютер в спящий режим (не в спящий режим)?
Я хочу перевести мой ПК с Windows (Windows 7) в спящее состояние через командную строку (чтобы я мог привязаться к кнопке макроса на клавиатуре).
Кнопка питания на ПК настроена, но компьютер находится в спящем режиме (но он лежит на полу, и я слишком ленив, чтобы дотянуться до него) именно так, как я этого хочу (спит в гибридном режиме на случай потери питания)
Команда сна в меню выключения также работает.
большая часть информации, которую я нашел, говорит, чтобы использовать;
%windir%\system32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0
Но это переводит компьютер в режим гибернации. У меня действительно отключен спящий режим, но я использую гибридный сон.
Итак, какую команду использовать, чтобы перевести компьютер в спящий режим (не в спящий режим)?
9 ответов
Я нашел решение. Я установил бесплатную программу AutoHotKey и записал шаги для вызова меню "Пуск" -> "Режим сна" в файл сценария. Затем я собрал файл сценария в отдельный исполняемый файл SleepWin7.exe.
Теперь я просто запускаю SleepWin7.exe, чтобы перевести мой компьютер в гибридный режим сна.
Вы можете удалить AutoHotKey, если это все, что вам нужно.
Обновление: вышеуказанное решение не работает, когда пользователь не вошел в систему, то есть Windows 7 Login Screen. (Мой компьютер просыпается в 4 часа утра каждое воскресенье, чтобы выполнять еженедельное резервное копирование, которое выполняется без входа пользователя.) В этом случае программа Wizmo все еще работает:
wizmo.exe тихий режим ожидания!
Надеюсь, вы найдете это полезным.
Неисправность %windir%\System32\shutdown.exe -s
перезагружать %windir%\System32\shutdown.exe -r
Выйти %windir%\System32\shutdown.exe -l
Ожидание %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Standby
зимовать %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate
Предупреждение: rundll32.exe не должен использоваться для запуска powerprof.dll . Вместо этого вы должны вызвать SetSuspendState напрямую. Это можно сделать с помощью Powershell - создайте файл, например sleep.ps1, с указанным ниже содержимым.
Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)
Затем запустите его, используя powershell -File C:\your-path\sleep.ps1
, Сначала вам может понадобиться запустить команду Set-ExecutionPolicy RemoteSigned
включить скрипты powershell для запуска.
Приведенный выше скрипт вызывает приостановку системы, которая будет либо в спящем режиме, либо в режиме гибернации, в зависимости от текущих настроек режима гибернации. Чтобы изменить этот параметр из командной строки, запустите powercfg -h off
(или же on
) из командной строки от имени администратора.
Посмотрите бесплатную утилиту Wizmo, которая может делать очень много вещей.
Вероятно, вы ищете команду:
Wizmo Standby
Вы можете создать файл с расширением.ps1 (powershell), например "sleep.ps1", и написать это:
Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)
Я использую это, когда у меня что-то работает, и я должен покинуть компьютер и не хочу выключать его. Поэтому я изменил скрипт так, чтобы он выглядел так:
$minutes = read-host "Enter minutes to wait until sleep";
$secs= 60*$minutes;
Start-sleep -s $secs
Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)
И теперь, когда я запускаю его, я просто ввожу минуты, которые хочу подождать до сна.
Вы можете запустить это из строки cmd, написав
powershell -File C:\your-path\sleep.ps1
Если вы никогда раньше не запускали сценарий PowerShell, вам нужно сначала запустить
Set-ExecutionPolicy RemoteSigned
в PowerShell, чтобы включить запуск сценария. Это нужно запустить только один раз.
С Sysinternals PsTools [ скачать]:
psshutdown -d
используя инструмент командной строки PsShutdown.
(Вы можете предпочесть это решение, если вы уже загрузили PsTools, оно довольно широко используется. В остальном этот подход эквивалентен использованиюwizmo
quiet standby
.)
Источник: /questions/677298/son-yarlyik-v-win7/677305#677305
Я использую эту утилиту SLEEP.EXE в течение многих лет. Он работает хорошо, и вам не нужно запоминать, какие аргументы выдавать для режима приостановки (его стандартная форма "сна").
Чтобы отключить режим гибернации нужно использовать
powercfg -h off
теперь, rundll32 powrprof.dll,SetSuspendState переведет вашу станцию в режим ожидания.
[РЕДАКТИРОВАТЬ]
на самом деле я не могу настроить гибридный сон, потому что у меня есть ноутбук (состояние, которое недоступно на мобильных станциях), для гибридного сна вам нужно включить спящий режим, а некоторые говорят, что rundll32 powrprof.dll,SetSuspendState запускают сон по умолчанию режим в вашей панели управления \ настройки управления питанием. Пожалуйста, попробуйте, если rundll32 powrprof.dll,SetSuspendState гибридного сна дать некоторые результаты.
Создайте файл bat, где 600 - задержка в секундах.
ping -n 600 -w 1 127.0.0.1> nul
powercfg -h выключен
% windir% \ System32 \ rundll32.exe powrprof.dll, SetSuspendState Standby
Если вы компетентны в компиляции программы.NET, следующая команда сделает это
System.Windows.Forms.Application.SetSuspendState(PowerState.Suspend,
false, /* force */
true /* disableWake */);
Примечание. Вам не нужно отключать спящий режим, как того требует rundll32 powrprof.dll,SetSuspendState
команда. Вы также можете использовать PowerState.Hibernate
который будет переводить компьютер в спящий режим, если вы хотите.
Вы можете легко скомпилировать EXE с помощью этой команды с любой версией Visual Studio. Просто создайте консольное приложение и добавьте ссылку на System.Windows.Forms
DLL.