2009-09-16 14:15:16 +0000 2009-09-16 14:15:16 +0000
147
147
Advertisement

Jak uśpić komputer z menu Command Prompt/Run?

Advertisement

Wiem, że prawie wszystko w systemie Windows, jak otwarcie dowolnego rodzaju aplikacji, można zrobić z powiedzi komend lub z menu Run.

Jak uśpić komputer z sleep lub shut it down? Jaka jest komenda do tego?

Advertisement

Odpowiedzi (11)

130
130
130
2009-09-16 14:21:19 +0000

Znajdziesz shutdown.exe być twoim przyjacielem.

Inne przydatne komendy patrz to post:

Śpiący komputer (czytaj więcej na https://superuser. com/a/463652/249349 )

Blokada stacji roboczej

Hibernacja komputera

see answers by Scott Chamberlain and Eric L

Restart komputera

Shutdown.exe -r -t 00

Zamknięcie komputera

Shutdown.exe -s -t 00

EDIT/UPDATE:

Wydaje się, że spanie komputera jest problematyczne, jeśli hibernacja jest włączona.

Kopiowanie z innych odpowiedzi:

Możesz spróbować albo PsShutdown albo:

Komenda rundll32.exe powrprof.dll,SetSuspendState 0,1,0 dla uśpienia jest poprawna - jednak, jeśli nie wyłączysz hibernacji, zamiast spać, będzie ona się hibernować.

Oto jak to zrobić:

Przejdź do Menu Start i otwórz podwyższony Prompt Komend wpisując cmd.exe, klikając prawym przyciskiem myszy i wybierając Uruchom jako administrator. Wpisz następujące polecenie:

powercfg -hibernate off
87
87
87
2012-02-29 20:57:51 +0000

Metody podane przez inne osoby nie działają poprawnie, jeśli komputer ma włączoną hibernację, komputer nie budzi się na klawiaturze lub, co ważniejsze, nie budzi się na zaplanowanym zadaniu.

Jednym z narzędzi Sysinternals firmy Microsoft jest PsShutdown za pomocą komendy psshutdown -d -t 0 będzie poprawnie spać, nie hibernacja, komputer

10
Advertisement
10
10
2013-04-06 18:11:55 +0000

NirCmd działa na Windows 8 (zakładam, że działa również na Windows 7) → http://www.nirsoft.net/utils/nircmd.html Komenda jest standby, ale uśpi komputer.

nircmd.exe standby

Jeśli masz włączony hybrydowy tryb uśpienia, to będzie działać; tzn. uśpi komputer i skopiuje pamięć na dysk w przypadku utraty zasilania.

3
3
3
2009-09-16 19:33:56 +0000

Zobacz wolne narzędzie Wizmo , które może zrobić bardzo wiele rzeczy. Polecenie, którego szukasz to prawdopodobnie:

wizmo standby

3
Advertisement
3
3
2017-01-29 14:55:59 +0000

Stworzyłem skrót do rundll32.exe powrprof.dll,SetSuspendState 0,1,0 (również próbowałem z 0,0,0), ale uruchomienie skrótu wydawało się wprowadzać mój komputer w stan hibernacji. Nie mogłem obudzić komputera za pomocą klawiatury, musiałem nacisnąć przycisk zasilania, a komputer pokazywał komunikaty pocztowe płyty głównej itp.

Po przeczytaniu Windows API document , stworzyłem bardzo prosty program z zaledwie 3 liniami pisania. Wgrałem plik wykonywalny, który skompilowałem do tej strony (kliknij “SleepTest.exe”) , ale ten plik może być po chwili usunięty (jest to darmowa strona hostująca pliki, którą właśnie znalazłem przez szybkie wyszukiwanie Google).

Jeśli mi nie ufasz (co jest całkowicie w porządku) lub plik został usunięty, możesz sam skompilować kod, oczywiście. Musisz dodać “PowrProf.lib” do dodatkowych zależności Linkera.

#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 wydaje się robić to samo, ale w jakiś sposób powyższy program nie wprowadził komputera w stan hibernacji. Mogłem obudzić komputer od razu (brak wiadomości o postach na płycie głównej itp.) naciskając dowolny klawisz na klawiaturze.

2
2
2
2009-09-17 05:10:31 +0000

Możesz zainicjować opcje wstrzymania lub hibernacji z linii poleceń, jak określono poniżej i przywołano w ten artykuł .

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

Jeśli komputer jest ustawiony na hibernację, to powyższa komenda rozpocznie hibernację. Jeśli funkcja hibernacji jest wyłączona, to komputer wejdzie w stan czuwania. Tak jak inni użytkownicy odpowiedzieli wcześniej, shutdown.exe /? udostępni wiele opcji wyłączenia.

1
Advertisement
1
1
2012-07-22 20:56:36 +0000

Musisz najpierw wyłączyć Hibernację w oknach, a następnie wprowadzić komputer w stan Sleep. Użyj następujących dwóch komend:

powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

i do wykonania akcji odwrotnej, Hibernacja komputera, użyj poniższych komend:

powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
1
1
1
2012-08-07 00:27:31 +0000

Tutaj to artykuł na temat używania CLI do zamykania.

Microsoft dostarcza PsTools, które dają Ci CLI do zamykania wraz z innymi użytecznymi narzędziami. Możesz dostać to tutaj .

1
Advertisement
1
1
2016-03-19 09:53:53 +0000

Tylko CIEKAWKA SLEEPER działa dla mnie (działa w Windows 7,8,10).

p.s. kod źródłowy dostępny tutaj .

1
1
1
2016-10-27 23:19:30 +0000

Jeśli masz do dyspozycji Pythona (z pywin32) możesz również wywołać funkcję SetSuspendState bezpośrednio z:

import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)

Można ją łatwo umieścić w pliku wsadowym lub skrócie:

pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"

Więc jeśli nie masz swoich plików .py powiązanych z tłumaczem możesz po prostu dwukrotnie kliknąć na link.

1
Advertisement
1
1
2018-04-03 05:28:08 +0000

shutdown.exe /? pokazuje wszystkie wybory do zamykania / restartu / uruchamiania zaawansowanych opcji / firmware'u.

Ale widzę tyle brzęczenia rzucanego na temat części Sleep. _Wszyscy rozumieją, że rundll32.exe nie powinien być używany do wywoływania przypadkowych funkcji i to po prostu działa tutaj dla hibernacji całkowicie przypadkowo. Ale taka jest natura Windows - czarna skrzynka, którą ludzie rozejrzeli się po okolicy i znaleźli setki obejść, aby wykonać pracę (shout-out to dostips). _

Istnieje tak wiele rozwiązań “proper” proponujących external tools, ale nie mogę znaleźć native (hybrydowy / pinvoke / cokolwiek) batch script, nawet jeśli to pytanie pozostało aktywne przez lata. Więc oto moje proste * 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

Działa nawet jako duża komenda jednowierszowa:

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();"
Advertisement
Advertisement