it-swarm.xyz

Команда может использовать этот режим?

Я хочу перевести мой ПК с Windows (Windows 7) в спящее состояние через командную строку (чтобы я мог привязаться к кнопке макроса на клавиатуре).

Кнопка питания на ПК настроена, но компьютер находится в спящем режиме (но он лежит на полу, и я слишком ленив, чтобы дотянуться до него) именно так, как я этого хочу (спит в гибридном режиме на случай потери питания)

Команда сна в меню выключения также работает.

большинство информации, которую я нашел, говорит, чтобы использовать;

%windir%\system32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0

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

Итак, какую команду использовать, чтобы перевести компьютер в спящий режим (не в спящий режим)?

63
Eric L

Я нашел решение. Я установил бесплатную программу AutoHotKey и записал шаги для вызова меню «Пуск» -> «Режим сна» в файл сценария. Затем я собрал файл сценария в отдельный исполняемый файл SleepWin7.exe.

Теперь я просто запускаю SleepWin7.exe, чтобы перевести мой компьютер в гибридный режим сна.

Вы можете удалить AutoHotKey, если это все, что вам нужно.


Обновление: вышеупомянутое решение не работает, когда пользователь не вошел в систему, то есть Windows 7 Login Screen. (Мой компьютер просыпается в 4 часа утра каждое воскресенье, чтобы выполнять еженедельное резервное копирование, которое выполняется без входа пользователя.) В этом случае программа Wizmo все еще работает:

wizmo.exe тихий режим ожидания!

13
Andy Lee

Надеюсь, вы найдете это полезным.

Отключение %windir%\System32\shutdown.exe -s

Перезагрузка %windir%\System32\shutdown.exe -r

Результат %windir%\System32\shutdown.exe -l

Режим ожидания %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Standby

Hibernate %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) из командной строки от имени администратора.

72
imoatama

Смотрите бесплатную утилиту Wizmo , которая может делать очень много вещей.
Вероятно, вы ищете команду:

wizmo Standby

15
harrymc

Вы можете создать файл с расширением .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, чтобы включить запуск сценария. Это нужно запустить только один раз.

14
Artur Carvalho

С Sysinternals PsTools [ скачать ]:

psshutdown -d

используя инструмент командной строки PsShutdown .

(Вы можете предпочесть это решение, если вы уже загрузили PsTools, оно довольно широко используется. В остальном этот подход эквивалентен использованию wizmoquiet standby.)

Источник: https://superuser.com/a/331545/21887

11
Aaron Thoma

Я использую эту утилиту SLEEP.EXE уже много лет. Он работает хорошо, и вам не нужно запоминать, какие аргументы выдавать для режима приостановки (его стандартная форма «сна»).

7
jjlin

чтобы отключить режим гибернации нужно использовать

powercfg -h off

теперь, rundll32 powrprof.dll, SetSuspendState переведет вашу станцию ​​в режим ожидания

[Правка]

на самом деле я не могу настроить гибридный сон, потому что у меня есть ноутбук (состояние, которое недоступно на мобильных станциях), для гибридного сна вам нужно включить спящий режим, а некоторые говорят, что rundll32 powrprof.dll, SetSuspendState запускают сон по умолчанию режим в вашей панели управления\настройки управления питанием. Пожалуйста, попробуйте, если rundll32 powrprof.dll, SetSuspendState Hybrid Sleep дать некоторые результаты.

6
user8228

Создайте файл bat, где 600 - задержка в секундах.

ping -n 600 -w 1 127.0.0.1> nul

powercfg -h выключен

% windir%\System32\rundll32.exe powrprof.dll, SetSuspendState Standby

5
dim77x

Если вы компетентны в компиляции .NET-программы, то следующая команда сделает это

System.Windows.Forms.Application.SetSuspendState(PowerState.Suspend, 
                                                 false,   /* force */
                                                 true     /* disableWake */);

Примечание: Вам не нужно отключать спящий режим, как того требует команда rundll32 powrprof.dll,SetSuspendState. Вы также можете использовать PowerState.Hibernate, который при необходимости переведет компьютер в спящий режим.

Вы можете легко скомпилировать EXE с помощью этой команды с любой версией Visual Studio . Просто создайте консольное приложение и добавьте ссылку на библиотеку System.Windows.Forms.

4
Simon