Wiem, że prawie wszystko w systemie Windows, takie jak otwieranie dowolnej aplikacji, można wykonać z wiersza polecenia lub z menu Uruchom .
Jak mogę uśpić komputer lub go wyłączyć ? Jakie jest na to polecenie?
Wiem, że prawie wszystko w systemie Windows, takie jak otwieranie dowolnej aplikacji, można wykonać z wiersza polecenia lub z menu Uruchom .
Jak mogę uśpić komputer lub go wyłączyć ? Jakie jest na to polecenie?
Odpowiedzi:
Przekonasz shutdown.exe
się, że jesteś swoim przyjacielem.
Inne przydatne polecenia zobacz ten post:
Sleep Computer (czytaj więcej na https://superuser.com/a/463652/249349 )
Zablokuj stację roboczą
Hibernacja Komputer
see answers by Scott Chamberlain and Eric L
Restart komputera
Shutdown.exe -r -t 00
Wyłącz komputer
Shutdown.exe -s -t 00
EDYCJA / AKTUALIZACJA:
Wygląda na to, że spanie przy komputerze jest problematyczne, jeśli hibernacja jest włączona.
Kopiowanie z innych odpowiedzi:
Możesz wypróbować PsShutdown lub:
Polecenie rundll32.exe powrprof.dll, SetSuspendState 0,1,0 dla uśpienia jest poprawne - jednak hibernuje zamiast uśpienia, jeśli nie wyłączysz hibernacji.
Oto jak to zrobić:
Przejdź do menu Start i otwórz wiersz polecenia z podwyższonym poziomem uprawnień, wpisując cmd.exe, klikając prawym przyciskiem myszy i wybierając Uruchom jako administrator. Wpisz następujące polecenie:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
polega na tym, że TO NIE DZIAŁA tak, jak powinno. SetSuspendState
wprowadzi komputer w rodzaj hybrydowego trybu uśpienia / hibernacji. Gdy używasz przycisku Uśpij z menu Start, możesz wznowić komputer ze stanu uśpienia, naciskając dowolny klawisz na klawiaturze. Za pomocą tego wiersza polecenia program make jest wznawiany znacznie wolniej z powodu głębszego stanu uśpienia i można go wznowić tylko po naciśnięciu przycisku zasilania na komputerze. Nie można wznowić naciśnięcia klawisza. Więc ... jak sprawić, byś spał jak w normalnym trybie gotowości - można go wznowić po naciśnięciu klawisza?
rundll32
nie powinien być używany do dzwonienia, SetSuspendState
ponieważ jego podpis nie pasuje do tego, którego oczekuje rundll32
. Patrz: support.microsoft.com/en-us/kb/164787 i msdn.microsoft.com/en-us/library/windows/desktop/… Pierwszy parametr otrzymuje śmieci zamiast wartości FAŁSZ. To jest powód, dla którego hibernuje zamiast iść spać.
Metody opublikowane przez inne osoby nie działają poprawnie, jeśli komputer ma włączoną hibernację, komputer nie obudzi się na klawiaturze lub, co ważniejsze, nie obudzi się w zaplanowanym zadaniu.
Jednym z narzędzi Sysinternals Microsoftu jest PsShutdown przy użyciu polecenia psshutdown -d -t 0
, aby poprawnie spał, a nie hibernował komputer
run as administrator
opcji kliknięcia prawym przyciskiem
psshutdown.exe
z archiwum np. C:\Windows\System32
Aby móc użyć polecenia bez prefiksu ścieżki. Następnie należy wykonać psshutdown -d -t 0
z uprawnieniami administratora w celu zawieszenia. To powinna być zaakceptowana odpowiedź , ponieważ odpowiada na pytanie, nawet jeśli nie jest to z narzędziami z preinstalowanym systemem Windows.
Polecenie rundll32.exe powrprof.dll,SetSuspendState 0,1,0
uśpienia jest poprawne - jednak zamiast hibernacji przejdzie w stan hibernacji zamiast uśpienia.
Oto jak to zrobić:
Przejdź do menu Start i otwórz wiersz polecenia z podwyższonym poziomem cmd.exe
uprawnień, wpisując , klikając prawym przyciskiem myszy i wybierając Uruchom jako administrator . Wpisz następujące polecenie:
powercfg -hibernate off
powrprof.dll
gdy hibernacja jest włączona? Po prostu chcę wiedzieć. Czy odnosi się do któregokolwiek z stanów ACPI?
rundll32
nie powinien być używany do dzwonienia, SetSuspendState
ponieważ jego podpis nie pasuje do tego, którego oczekuje rundll32
. Patrz: support.microsoft.com/en-us/kb/164787 i msdn.microsoft.com/en-us/library/windows/desktop/… Pierwszy parametr otrzymuje śmieci zamiast FAŁSZ. To jest powód, dla którego hibernuje zamiast iść spać.
NirCmd działa w systemie Windows 8 (zakładam, że działa również z Windows 7) → http://www.nirsoft.net/utils/nircmd.html
Polecenie jest standby
, ale powoduje uśpienie komputera.
nircmd.exe standby
Jeśli masz włączony tryb hybrydowy, będzie działał; oznacza to, że komputer przechodzi w tryb uśpienia i kopiuje pamięć na dysk w przypadku utraty zasilania.
Zobacz bezpłatne narzędzie Wizmo , które potrafi wiele rzeczy.
Polecenie, którego szukasz, to prawdopodobnie:
wizmo standby
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
- wprowadza komputer w stan hibernacji, a nie w sen
Utworzyłem skrót do rundll32.exe powrprof.dll,SetSuspendState 0,1,0
(próbowałem również z 0,0,0), ale uruchomienie skrótu sprawiło, że mój komputer przeszedł w stan hibernacji. Nie mogłem obudzić komputera za pomocą klawiatury; Musiałem nacisnąć przycisk zasilania, a komputer pokazał wiadomości na płycie głównej itp.
Po przeczytaniu dokumentu API systemu Windows stworzyłem bardzo prosty program z zaledwie 3 wierszami pisania. Przesłałem plik wykonywalny skompilowany na tę stronę (kliknij plik „SleepTest.exe”) , ale ten plik może zostać po pewnym czasie usunięty (jest to darmowa witryna hostingowa plików, którą właśnie znalazłem przez szybkie wyszukiwanie w Google).
Jeśli mi nie ufasz (co jest całkowicie w porządku) lub plik został usunięty, możesz samodzielnie skompilować kod. 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ę, że robi to samo, ale jakoś powyższy program nie wprowadził komputera w stan hibernacji. Mogłem natychmiast obudzić komputer (bez wiadomości na płycie głównej itp.), Naciskając dowolny klawisz na klawiaturze.
Możesz zainicjować opcje zawieszenia lub hibernacji z wiersza poleceń, jak określono poniżej i do którego odwołuje się ten artykuł .
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
Jeśli komputer jest ustawiony na zezwalanie na hibernację, powyższe polecenie zainicjuje hibernację. Jeśli funkcja hibernacji jest wyłączona, przejdzie w stan gotowości. Jak inni użytkownicy odpowiedzieli wcześniej, shutdown.exe /?
zapewni wiele opcji zamykania.
rundll32
nie powinien być używany do dzwonienia, SetSuspendState
ponieważ jego podpis nie pasuje do tego, którego oczekuje rundll32
. Zobacz: support.microsoft.com/en-us/kb/164787 i msdn.microsoft.com/en-us/library/windows/desktop/… Pierwszy parametr otrzymuje śmieci zamiast FAŁSZ, więc zawsze hibernuje zamiast przechodzić do spać.
Musisz najpierw wyłączyć hibernację w systemie Windows, a następnie przełączyć komputer w stan uśpienia . Użyj następujących dwóch poleceń:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
i do wykonania akcji odwrotnej, hibernacji komputera, użyj poniższych poleceń:
powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
rundll32
nie jest przeznaczony do dzwonienia SetSuspendState
i nie powinien być do tego wykorzystywany. Pierwszy parametr otrzymuje śmieci zamiast poprawnej wartości. Więc zawsze hibernuje zamiast iść spać (jeśli w ogóle nie wyłączyłeś hibernacji).
działa dla mnie tylko QUICK SLEEPER (działa w systemie Windows 7,8,10).
kod źródłowy ps dostępny tutaj .
Jeśli masz dostępny Python (z pywin32), możesz również wywołać tę funkcję SetSuspendState bezpośrednio za pomocą:
import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)
Można to łatwo umieścić w pliku wsadowym lub w skrócie:
pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"
Jeśli więc nie masz powiązanych plików interpretera z plikami .py, możesz kliknąć dwukrotnie łącze.
Część zamykająca pytanie jest jasna dla wszystkich.
shutdown.exe /?
pokazuje wszystkie opcje wyłączenia / restartu / opcji zaawansowanych rozruchu / rozruchu oprogramowania układowego.
Ale widzę tyle bełkotu wokół części Sen.
Każdy dostaje to, rundll32.exe
czego nie należy używać do wywoływania funkcji losowych, i działa tutaj tylko w przypadku hibernacji całkowicie przez przypadek. Ale taka jest natura systemu Windows - czarna skrzynka, którą ludzie przeszukali i znaleźli setki obejść, aby wykonać zadanie (krzyczeć, aby dostips).
Jest tak wiele „ właściwych ” rozwiązań proponujących narzędzia zewnętrzne , ale nie mogę znaleźć natywnego (hybrydowego / pinvoke / cokolwiek) skryptu wsadowego , nawet jeśli to pytanie pozostało aktywne przez lata.
Oto mój prosty 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że jedno-wierszowe polecenie:
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();"