Я знаю, що майже все в Windows, як і відкриття будь-якої програми, можна зробити з командного рядка або з меню « Запустити ».
Як можна перевести комп'ютер у режим сну або вимкнути його ? Яка команда для цього?
Я знаю, що майже все в Windows, як і відкриття будь-якої програми, можна зробити з командного рядка або з меню « Запустити ».
Як можна перевести комп'ютер у режим сну або вимкнути його ? Яка команда для цього?
Відповіді:
Ви знайдете shutdown.exe
свого друга.
Інші зручні команди дивіться цю публікацію:
Сонний комп’ютер (детальніше читайте на https://superuser.com/a/463652/249349 )
Блокування робочої станції
Hibernate Computer
see answers by Scott Chamberlain and Eric L
Перезавантажте комп'ютер
Shutdown.exe -r -t 00
Комп'ютер відключення
Shutdown.exe -s -t 00
Редагування / оновлення:
Здається, що спати за комп’ютером проблематично, якщо сплячий режим увімкнено.
Копіювання з інших відповідей:
Ви можете спробувати PsShutdown або:
Команда rundll32.exe powrprof.dll, SetSuspendState 0,1,0 для сну правильна - однак вона перейде в сплячку замість сну, якщо не вимкнути сплячку.
Ось як це зробити:
Перейдіть у меню "Пуск" і відкрийте підвищений командний рядок, набравши cmd.exe, клацнувши правою кнопкою миші та вибравши Запустити як адміністратор. Введіть таку команду:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
тому, що вона НЕ ПРАЦЮЄ як слід. SetSuspendState
переведе комп'ютер у своєрідний гібридний режим сну / сну. Використовуючи кнопку "Сон" у меню "Пуск", ви можете відновити комп'ютер зі сну, натиснувши будь-яку клавішу на клавіатурі. Використовуючи цей командний рядок, функція поновлюється набагато повільніше через стан глибокого сну, і він може відновитись лише при натисканні кнопки живлення на комп’ютері. Він не може відновитись при натисканні клавіші. Отже ... як ви змусите його спати, як у звичайному режимі очікування - відновлення натискання клавіші?
rundll32
не слід використовувати для виклику, SetSuspendState
оскільки його підпис не відповідає тому, що очікується rundll32
. Дивіться: support.microsoft.com/en-us/kb/164787 та msdn.microsoft.com/en-us/library/windows/desktop/… Перший параметр отримує сміття замість значення FALSE. Це причина, чому він зимує замість того, щоб спати.
Способи, розміщені іншими людьми, не працюють належним чином, якщо на комп’ютері увімкнено сплячку, комп'ютер не прокинеться на клавіатурі або, що ще важливіше, не прокинеться за запланованим завданням.
Один із інструментів Microsoft Sysinternals - це 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
, коли сплячий режим увімкнено? Просто хочу знати. Чи це стосується будь-якого із станів АКТІ?
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 , яка може зробити дуже багато речей.
Команда, яку ви шукаєте, ймовірно:
режим очікування
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" до додаткових залежностей Linker.
#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, тому він завжди зимує замість того, щоб їхати спати.
Спочатку потрібно вимкнути сплячий режим у вікнах, а потім перевести комп'ютер у стан сну . Використовуйте наступні дві команди:
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 - чорна скринька, яку люди розігнали і знайшли сотні обхідних шляхів, щоб влаштуватися на роботу (кричати до досягнення).
Існує дуже багато " належних " рішень, що пропонують зовнішні інструменти , але я, здається, не можу знайти власний пакетний сценарій (гібрид / пінвоке / що завгодно) , навіть якщо це питання залишалося активним протягом багатьох років.
Ось ось мій простий 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();"