2009-09-11 10:16:21 +0000 2009-09-11 10:16:21 +0000
63
63

Jakiej komendy należy użyć, aby uśpić komputer (nie hibernować)?

Chcę wprowadzić mój komputer z systemem Windows (Windows 7) w stan uśpienia za pomocą wiersza poleceń (więc mogę powiązać z przyciskiem makro na klawiaturze).

Przycisk zasilania na komputerze jest ustawiony, ale komputer jest w stanie uśpienia (ale jest na podłodze i jestem zbyt leniwy, aby sięgnąć w dół) to dokładnie tak, jak chcę (śpi używając trybu hybrydowego w przypadku utraty zasilania)

Polecenie uśpienia w menu wyłączania również działa.

Większość informacji jakie znalazłem mówi, żeby użyć;

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

Ale to wprowadza komputer w tryb hibernacji. Mam wyłączoną hibernację, ale używam uśpienia hybrydowego.

Jakiej więc komendy należy użyć, aby uśpić komputer (nie hibernować)?

Odpowiedzi (8)

73
73
73
2010-09-15 03:25:22 +0000

Mam nadzieję, że ci się to przyda.

Shutdown %windir%\System32\shutdown.exe -s

Reboot %windir%\System32\shutdown.exe -r

Logoff %windir%\System32\shutdown.exe -l

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

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

Uwaga: Nie należy używać rundll32.exe do uruchamiania powerprof.dll ](http://superuser.com/a/331545/21887). Zamiast tego należy bezpośrednio wywołać SetSuspendState. Można to zrobić za pomocą Powershell'a - należy utworzyć plik np. sleep.ps1, z poniższą zawartością.

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

Następnie uruchom go używając powershell -File C:\your-path\sleep.ps1. Być może trzeba będzie najpierw uruchomić komendę Set-ExecutionPolicy RemoteSigned, aby umożliwić uruchamianie skryptów powershell.

Powyższy skrypt powoduje zawieszenie systemu, który zostanie uśpiony lub zahibernowany, w zależności od bieżącego ustawienia hibernacji. Aby zmienić to ustawienie z wiersza poleceń, należy uruchomić powercfg -h off (lub on) z wiersza poleceń jako administrator.

16
16
16
2009-09-11 10:38:59 +0000

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

wizmo standby

14
14
14
2011-06-29 18:56:07 +0000

Możesz utworzyć plik z rozszerzeniem .ps1 (powershell) jak “sleep.ps1” i napisać to:

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

Używam tego, gdy mam coś uruchomione i muszę odejść od pc, a nie chcę go wyłączać. Zmieniam więc skrypt, aby wyglądał tak:

$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)

I teraz kiedy go uruchamiam, wpisuję tylko minuty, które chcę odczekać do uśpienia.

Możesz uruchomić to z linii cmd pisząc

powershell -File C:\your-path\sleep.ps1

Jeśli nigdy wcześniej nie uruchamiałeś skryptu PowerShell, będziesz chciał najpierw uruchomić

Set-ExecutionPolicy RemoteSigned

w PowerShell, aby umożliwić uruchomienie skryptu. Czynność ta musi być wykonana tylko raz.

13
13
13
2010-05-28 19:01:38 +0000

Znalazłem rozwiązanie. Zainstalowałem darmowy program o nazwie AutoHotKey i nagrałem kroki wywołania Menu Start -> Sleep do pliku skryptowego. Następnie skompilowałem plik skryptu w samodzielny plik wykonywalny SleepWin7.exe.

Teraz po prostu uruchamiam SleepWin7.exe, aby wprowadzić mój komputer w stan uśpienia hybrydowego.

Możesz odinstalować AutoHotKey, jeśli to wszystko, do czego go potrzebujesz.


Aktualizacja: Powyższe rozwiązanie nie działa, gdy użytkownik nie jest zalogowany, tj. Windows 7 Login Screen. (Mój komputer budzi się o 4 rano w każdą niedzielę, aby wykonać cotygodniowy backup, który jest wykonywany bez logowania użytkownika). W takim przypadku program Wizmo nadal działa:

wizmo.exe quiet standby!

11
11
11
2012-06-20 19:25:37 +0000

Za pomocą Sysinternals PsTools [ pobierz ]:

psshutdown -d

Za pomocą narzędzia wiersza poleceń PsShutdown .

(Możesz preferować to rozwiązanie, jeśli masz już pobrane PsTools, jest ono dość powszechnie używane. Poza tym, to podejście jest równoważne z użyciem wizmo quiet standby).

Źródło: https://superuser.com/a/331545/21887

7
7
7
2012-10-10 04:25:06 +0000

Używam tego narzędzia SLEEP.EXE od lat. Działa dobrze i nie musisz pamiętać, jakie argumenty podać do trybu wstrzymania (domyślna forma “sleep”).

5
5
5
2010-12-16 17:25:46 +0000

Utwórz plik bat, gdzie 600 to opóźnienie w sekundach.

ping -n 600 -w 1 127.0.0.1 > nul

powercfg -h off

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

4
4
4
2010-09-15 00:55:39 +0000

Jeśli jesteś kompetentny w kompilowaniu programów .NET, następujące polecenie zrobi to

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

Uwaga: Nie musisz wyłączać hibernacji, jak jest to wymagane przez polecenie rundll32 powrprof.dll,SetSuspendState. Możesz również użyć PowerState.Hibernate, które zahibernuje maszynę, jeśli chcesz.

Możesz łatwo skompilować EXE za pomocą tego polecenia z dowolną wersją Visual Studio . Wystarczy utworzyć aplikację konsolową i dodać odwołanie do biblioteki DLL System.Windows.Forms.