Chcę utworzyć plik wsadowy, który po pewnym czasie uśpi mój komputer.
Najbliższą rzeczą, jaką znalazłem, jest przejście w tryb gotowości, ale wydaje się, że działa inaczej niż przycisk uśpienia na mojej klawiaturze (dłuższe uruchamianie, nie budzi się po kliknięciu myszą). Jakieś pomysły? Czy byłoby łatwiej w Pythonie lub C #?
Mniej niż idealna technika wspomniana powyżej nazywa to w wierszu polecenia cmd:
Rundll32.exe powrprof.dll,SetSuspendState
windows-7
sleep
batch-file
Saebin
źródło
źródło
Odpowiedzi:
Po prostu rozkaż
Czy system hibernuje , ale jeśli napiszesz to:
I wyłącz hibernację za pomocą polecenia:
Teraz twój system zaśnie i obudzi się po poruszeniu myszą, jeśli wybrałeś dla niego urządzenie (przewiń w dół, aby dowiedzieć się, jak to zrobić).
Partia timera:
Gdzie 1200 to sekundy, co oznacza, że po 20 minutach partia uruchomi polecenie uśpienia.
Opcjonalnie możesz zapobiec anulowaniu odliczania (jeśli naciśniesz dowolny klawisz w oknie partii):
Mały HOWTO o budzeniu się myszką:
Przejdź do: Start -> Panel sterowania -> Mysz.
W oknie Właściwości myszy kliknij kartę Sprzęt i wybierz mysz z listy urządzeń. Zwykle na liście znajduje się tylko jedna mysz, ale zależy to od sprzętu podłączonego do komputera. Po wybraniu myszy z listy kliknij przycisk Właściwości .
Teraz w oknie Właściwości myszy kliknij przycisk Zmień ustawienia na karcie Ogólne .
W oknie, które zostanie otwarte, kliknij kartę Zarządzanie energią i zaznacz opcję Zezwalaj temu urządzeniu na wybudzanie komputera . Kliknij przycisk OK w tym oknie i kliknij przycisk OK w oknie właściwości myszy, które jest nadal otwarte. Od tej chwili możesz obudzić system Windows 7 z trybu uśpienia, klikając przycisk myszy lub poruszając myszą.
źródło
hibernuje komputer (choć nie jestem pewien co do zawieszenia).
źródło
Działające rozwiązanie!
Musiałem użyć tego
PsShutdown
narzędzia, aby umożliwić prawidłowe spanie (głównym problemem jest to,SetSuspendState
że liczniki budzenia nie budzą komputera). Mój plik wsadowy do spania to 1 prosta linia:źródło
.NET na ratunek. To rozwiązanie uśpiło komputer bez konieczności zmiany konfiguracji komputera (wyłączenie hibernacji). Uruchom to polecenie wsadowo:
powershell.exe -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)"
Możesz użyć albo
::Suspend
do snu, albo::Hibernate
(w taki sposób, w jaki działają inne odpowiedzi). Dokumentacja dla SetSuspendState.Ponieważ
System.Windows.Forms
przestrzeń nazw nie jest domyślnie ładowana (robi to w Powershell ISE), musisz najpierw załadować zespół w tym celu.oryginalna odpowiedź
źródło
Możesz spróbować SetSystemPowerState, aby uniknąć konieczności wyłączania Hiberanacji.
rundll32.exe kernel32.dll, SetSystemPowerState
Zauważ, że dodanie 1,0 lub 1 0 lub nawet wykonanie Rundll32.exe powrprof.dll, SetSuspendState 0 0 1 lub Rundll32.exe powrprof.dll, SetSuspendState 0,0,1 oznacza, że argumenty (0,0,1) oznaczają NIC.
Powrprof.dll, SetSuspendState nie analizuje argumentów stylu rundll32 i dlatego je ignoruje. Dlatego musisz wyłączyć hibernację.
źródło
Na to pytanie już udzielono odpowiedzi.
powercfg -h off & start / min "" C: \ WINDOWS \ System32 \ rundll32.exe PowrProf.dll, SetSuspendState 0,1,0 & ping -n 3 127.0.0.1> nul & powercfg -h on & exit
Zobacz:
Jakiego polecenia należy użyć, aby uśpić komputer (nie hibernować)?
źródło
Wystarczy utworzyć plik wsadowy i wstawić następujące wiersze:
źródło