Я знаю, что почти все в Windows, например, открытие любого приложения, можно выполнить из командной строки или из меню « Выполнить» .
Как я могу перевести компьютер в режим сна или выключить его ? Какая команда для этого?
Я знаю, что почти все в Windows, например, открытие любого приложения, можно выполнить из командной строки или из меню « Выполнить» .
Как я могу перевести компьютер в режим сна или выключить его ? Какая команда для этого?
Ответы:
Вы найдете, shutdown.exe
чтобы быть вашим другом.
Другие удобные команды смотрите в этом посте:
Спящий компьютер (подробнее на https://superuser.com/a/463652/249349 )
Блокировка рабочей станции
Спящий компьютер
see answers by Scott Chamberlain and Eric L
Перезапустить компьютер
Shutdown.exe -r -t 00
Выключить компьютер
Shutdown.exe -s -t 00
EDIT / UPDATE:
Кажется, что спать на компьютере проблематично, если включен режим гибернации.
Копирование из других ответов:
Вы можете попробовать PsShutdown или:
Команда rundll32.exe powrprof.dll, SetSuspendState 0,1,0 для спящего режима верна - однако она будет переходить в спящий режим вместо спящего, если вы не отключите спящий режим.
Вот как это сделать:
Перейдите в меню «Пуск» и откройте командную строку с повышенными правами, введя cmd.exe, щелкнув правой кнопкой мыши и выбрав «Запуск от имени администратора». Введите следующую команду:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
том, что ОНО НЕ РАБОТАЕТ, как должно. SetSuspendState
переведет компьютер в некий гибридный режим сна / гибернации. Когда вы используете кнопку «Режим сна» в меню «Пуск», вы можете вывести компьютер из режима сна, нажав любую клавишу на клавиатуре. Используя эту командную строку, make возобновляется намного медленнее из-за более глубокого состояния сна, и он может возобновиться, только если вы нажмете кнопку питания на вашем компьютере. Он не может возобновиться после нажатия клавиши. Итак ... как заставить его спать, как в обычном режиме ожидания, - возобновить нажатием клавиши?
rundll32
не должен использоваться для вызова, SetSuspendState
потому что его подпись не соответствует ожидаемой rundll32
. См: support.microsoft.com/en-us/kb/164787 и msdn.microsoft.com/en-us/library/windows/desktop/... Первый параметр получает мусор вместо FALSE значения. Это причина, почему он зимует вместо того, чтобы идти спать.
Методы, опубликованные другими людьми, работают некорректно, если на компьютере включен режим гибернации, компьютер не будет активирован на клавиатуре или, что более важно, не активируется на запланированном задании.
Одним из инструментов Sysinternals Microsoft является PsShutdown с помощью команды psshutdown -d -t 0
он будет правильно спать, не спящий режим , компьютер
run as administrator
опции правого клика
psshutdown.exe
из архива, например C:\Windows\System32
, чтобы можно было использовать команду без pathprefix. Затем необходимо выполнить psshutdown -d -t 0
с правами администратора для приостановки. Это должен быть принятый ответ , потому что он отвечает на вопрос, даже если не с предустановленными средствами Windows.
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
Правильная команда для сна верна - однако она будет переходить в спящий режим вместо сна, если вы не выключите спящий режим.
Вот как это сделать:
Перейдите в меню «Пуск» и откройте командную строку с повышенными cmd.exe
правами. Для этого введите правой кнопкой мыши и выберите « Запуск от имени администратора» . Введите следующую команду:
powercfg -hibernate off
powrprof.dll
, когда спящий режим включен? Просто хочу знать. Это относится к любому из состояний ACPI?
rundll32
не должен использоваться для вызова, SetSuspendState
потому что его подпись не соответствует ожидаемой rundll32
. См: support.microsoft.com/en-us/kb/164787 и msdn.microsoft.com/en-us/library/windows/desktop/... Первый параметр получает мусор вместо FALSE. Это причина, почему он зимует вместо того, чтобы идти спать.
NirCmd работает в Windows 8 (я полагаю, что это также работает и в Windows 7) → http://www.nirsoft.net/utils/nircmd.html
Команда есть standby
, но она переводит компьютер в спящий режим.
nircmd.exe standby
Если у вас включен гибридный сон, он будет работать; т.е. он переводит компьютер в спящий режим и копирует память на диск в случае потери питания.
Посмотрите бесплатную утилиту Wizmo , которая может делать очень много вещей.
Вероятно, вы ищете команду:
Wizmo Standby
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
- он переводит компьютер в спящий режим, а не в спящий режим
Я создал ярлык для rundll32.exe powrprof.dll,SetSuspendState 0,1,0
(также пробовал с 0,0,0), но запуск ярлыка, похоже, перевел мой компьютер в спящий режим. Я не мог разбудить ПК с помощью клавиатуры; Пришлось нажимать кнопку включения, и на ПК показывались сообщения системной платы и т. Д.
Прочитав документ Windows API , я создал очень простую программу, набрав всего 3 строки. Я загрузил исполняемый файл, скомпилированный на эту страницу (нажмите «SleepTest.exe») , но через некоторое время этот файл может быть удален (это бесплатный сайт для размещения файлов, который я только что нашел при быстром поиске в Google).
Если вы не доверяете мне (что вполне нормально) или файл был удален, вы, конечно, можете скомпилировать код самостоятельно. Вам необходимо добавить «PowrProf.lib» к дополнительным зависимостям компоновщика.
#include "stdafx.h"
#include "windows.h" <-- Added this to make it work on Windows.
#include "PowrProf.h" <-- Added this to use the sleep function.
int main()
{
SetSuspendState(FALSE, FALSE, FALSE); <-- Added this actual call.
return 0;
}
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
кажется, делает то же самое, но каким-то образом вышеприведенная программа не переводит компьютер в спящий режим. Я мог мгновенно разбудить компьютер (без сообщений на материнской плате и т. Д.), Нажав любую клавишу на клавиатуре.
Вы можете запустить параметры приостановки или спящего режима из командной строки, как указано ниже и упоминается в этой статье .
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
Если на вашем компьютере разрешен режим гибернации, то приведенная выше команда инициирует режим гибернации. Если функция гибернации отключена, то она перейдет в режим ожидания. Как другие пользователи ответили ранее, shutdown.exe /?
предоставит множество вариантов выключения.
rundll32
не должен использоваться для вызова, SetSuspendState
потому что его подпись не соответствует ожидаемой rundll32
. См: support.microsoft.com/en-us/kb/164787 и msdn.microsoft.com/en-us/library/windows/desktop/... Первый параметр получает мусор вместо FALSE, так что он всегда зимует вместо того , чтобы идти к спать.
Сначала необходимо отключить Hibernate в Windows, а затем перевести компьютер в состояние сна . Используйте следующие две команды:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
и для выполнения обратного действия, гибернации компьютера, используйте команды ниже:
powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
rundll32
не предназначен для вызова SetSuspendState
и не должен использоваться для этого. Первый параметр получает мусор вместо правильного значения. Поэтому он всегда спит, а не засыпает (если вы вообще не отключили спящий режим).
у меня работает только QUICK SLEEPER (работает в Windows 7,8,10).
Исходный код PS доступен здесь .
Если у вас есть Python (с pywin32), вы также можете вызвать эту функцию SetSuspendState напрямую с помощью:
import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)
Это может быть легко помещено в пакетный файл или ярлык вроде:
pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"
Итак, если у вас нет файлов .py, связанных с переводчиком, вы можете просто дважды щелкнуть ссылку.
Отключение части вопроса понятно для всех.
shutdown.exe /?
показывает все варианты выключения / перезапуска / дополнительные параметры загрузки / прошивки загрузки.
Но я вижу столько ударов вокруг сна.
Все получают это, что rundll32.exe
не должно использоваться для вызова случайных функций, и это просто работает здесь для спящего полностью по стечению обстоятельств. Но такова природа Windows - черный ящик, в котором люди ковырялись и нашли сотни обходных путей для выполнения своей работы (кричали в восторге).
Есть так много « правильных » решений, предлагающих внешние инструменты , но я не могу найти нативный (гибридный / pinvoke / любой) пакетный скрипт , даже если этот вопрос оставался активным на протяжении многих лет.
Итак, вот мой простой power_sleep.bat :
@echo off &mode 32,2 &color cf &title Power Sleep
set "s1=$m='[DllImport ("Powrprof.dll", SetLastError = true)]"
set "s2=static extern bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);"
set "s3=public static void PowerSleep(){ SetSuspendState(false, false, false); }';"
set "s4=add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
set "ps_powersleep=%s1%%s2%%s3%%s4%"
call powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -Command "%ps_powersleep:"=\"%"
exit
Это даже работает как большая однострочная команда:
powershell.exe -C "$m='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(bool hibernate,bool forceCritical,bool disableWakeEvent);public static void PowerSleep(){SetSuspendState(false,false,false); }';add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"