So che quasi tutto su Windows, come l'apertura di qualsiasi tipo di applicazione, può essere eseguito dal prompt dei comandi o dal menu Esegui .
Come posso mettere il mio computer in standby o spegnerlo ? Qual è il comando per quello?
So che quasi tutto su Windows, come l'apertura di qualsiasi tipo di applicazione, può essere eseguito dal prompt dei comandi o dal menu Esegui .
Come posso mettere il mio computer in standby o spegnerlo ? Qual è il comando per quello?
Risposte:
Scoprirai shutdown.exe
di essere tuo amico.
Altri comandi utili vedono questo post:
Sleep Computer (leggi di più su https://superuser.com/a/463652/249349 )
Lock Workstation
Hibernate Computer
see answers by Scott Chamberlain and Eric L
Riavvia il computer
Shutdown.exe -r -t 00
Spegnere il computer
Shutdown.exe -s -t 00
EDIT / UPDATE:
Sembra che dormire su un computer sia problematico se l'ibernazione è attiva.
Copia da altre risposte:
Puoi provare PsShutdown o:
Il comando rundll32.exe powrprof.dll, SetSuspendState 0,1,0 per la sospensione è corretto, tuttavia andrà in letargo invece della sospensione se non si disattiva la modalità di sospensione.
Ecco come farlo:
Vai al menu Start e apri un prompt dei comandi con privilegi digitando cmd.exe, facendo clic con il pulsante destro del mouse e scegliendo Esegui come amministratore. Digita il seguente comando:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
è che NON FUNZIONA come dovrebbe. SetSuspendState
metterà il computer in una sorta di modalità ibrida di sospensione / ibernazione. Quando si utilizza il pulsante Sospensione dal menu Start, è possibile ripristinare la sospensione del computer premendo un tasto qualsiasi sulla tastiera. Utilizzando questa riga di comando, make viene ripristinato molto più lentamente a causa dello stato di sospensione più profondo e può riprendere solo se si preme il pulsante di accensione sul computer. Non può riprendere per la pressione di un tasto. Quindi ... come si fa a dormire come in standby normale - ripristinabile con la pressione di un tasto?
rundll32
non dovrebbe essere usato per chiamare SetSuspendState
perché la sua firma non corrisponde a quella prevista da rundll32
. Vedere: support.microsoft.com/en-us/kb/164787 e msdn.microsoft.com/en-us/library/windows/desktop/… Il primo parametro ottiene spazzatura invece del valore FALSE. È la ragione, perché va in letargo invece di andare a dormire.
I metodi pubblicati da altre persone non funzionano correttamente se un computer ha il letargo abilitato, il computer non si riattiverà sulla tastiera o, cosa più importante, non si riattiverà sulle attività pianificate.
Uno degli strumenti di Microsoft Sysinternals è PsShutdown che utilizza il comando psshutdown -d -t 0
per dormire correttamente, non in letargo , un computer
run as administrator
opzione clic destro
psshutdown.exe
dall'archivio ad es. C:\Windows\System32
Per poter usare il comando senza pathprefix. È quindi necessario eseguire psshutdown -d -t 0
con privilegi di amministratore per sospendere. Questa dovrebbe essere la risposta accettata , perché risponde alla domanda, anche se non con strumenti preinstallati da Windows.
Il comando rundll32.exe powrprof.dll,SetSuspendState 0,1,0
per il sonno è corretto, tuttavia andrà in letargo invece del sonno se non si disattiva il letargo.
Ecco come farlo:
Vai al menu Start e apri un prompt dei comandi con privilegi digitando cmd.exe
, facendo clic con il pulsante destro del mouse e selezionando Esegui come amministratore . Digita il seguente comando:
powercfg -hibernate off
powrprof.dll
quando la modalità di sospensione è attiva? Voglio solo sapere. Si riferisce a uno qualsiasi degli stati ACPI?
rundll32
non dovrebbe essere usato per chiamare SetSuspendState
perché la sua firma non corrisponde a quella prevista da rundll32
. Vedere: support.microsoft.com/en-us/kb/164787 e msdn.microsoft.com/en-us/library/windows/desktop/… Il primo parametro ottiene spazzatura anziché FALSE. È la ragione, perché va in letargo invece di andare a dormire.
NirCmd funziona su Windows 8 (suppongo che funzioni anche con Windows 7) → http://www.nirsoft.net/utils/nircmd.html
Il comando è standby
, ma mette il computer in sospensione.
nircmd.exe standby
Se è abilitata la sospensione ibrida, funzionerà; vale a dire, mette il computer in modalità di sospensione e copia la memoria su disco in caso di interruzione dell'alimentazione.
Guarda l'utilità gratuita di Wizmo , che può fare moltissime cose.
Il comando che stai cercando è probabilmente:
wizmo standby
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
- mette il computer in letargo, non in sospensione
Ho creato una scorciatoia per rundll32.exe powrprof.dll,SetSuspendState 0,1,0
(anche provato con 0,0,0), ma l'esecuzione della scorciatoia sembrava mettere il mio PC in letargo. Non è stato possibile riattivare il PC utilizzando la tastiera; Ho dovuto premere il pulsante di accensione e il PC ha mostrato i messaggi di posta sulla scheda madre, ecc.
Dopo aver letto il documento API di Windows , ho creato un programma molto semplice con solo 3 righe di digitazione. Ho caricato l'eseguibile che ho compilato in questa pagina (fare clic su "SleepTest.exe") , ma questo file potrebbe essere eliminato dopo un po '(questo è un sito di hosting di file gratuito che ho appena trovato da una rapida ricerca su Google).
Se non ti fidi di me (il che è totalmente soddisfacente) o il file è stato eliminato, puoi compilare il codice da solo, ovviamente. Devi aggiungere "PowrProf.lib" alle dipendenze aggiuntive del 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
sembra che stia facendo la stessa cosa, ma in qualche modo, il programma sopra non ha messo in letargo il computer. Potrei svegliare il PC all'istante (nessun messaggio sulla scheda madre, ecc.) Premendo qualsiasi tasto sulla tastiera.
È possibile avviare le opzioni di sospensione o ibernazione dalla riga di comando come specificato di seguito e indicato in questo articolo .
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
Se il computer è impostato per consentire l'ibernazione, il comando precedente avvierà l'ibernazione. Se la funzione di ibernazione è disabilitata, entrerà nello stato di standby. Come altri utenti hanno già risposto in precedenza, shutdown.exe /?
forniranno molte opzioni di spegnimento.
rundll32
non dovrebbe essere usato per chiamare SetSuspendState
perché la sua firma non corrisponde a quella prevista da rundll32
. Vedi: support.microsoft.com/en-us/kb/164787 e msdn.microsoft.com/en-us/library/windows/desktop/… Il primo parametro ottiene spazzatura invece di FALSE, quindi va sempre in letargo invece di andare a dormire.
È necessario prima disattivare sospensione in Windows e poi mettere il computer in sospensione dello stato. Utilizzare i seguenti due comandi:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
e per eseguire l'azione inversa, Ibernazione del computer, utilizzare i comandi seguenti:
powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
rundll32
non è destinato alla chiamata SetSuspendState
e non deve essere utilizzato per questo. Il primo parametro ottiene immondizia anziché valore corretto. Quindi va sempre in letargo invece di andare a dormire (se non hai disabilitato il letargo).
solo QUICK SLEEPER funziona per me (funziona in Windows 7,8,10).
codice sorgente ps disponibile qui .
Se hai Python (con pywin32) disponibile puoi anche chiamare quella funzione SetSuspendState direttamente con:
import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)
Questo può essere facilmente inserito in un file batch o in una sorta di collegamento come:
pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"
Quindi, se non hai i tuoi file .py associati all'interprete, puoi semplicemente fare doppio clic sul collegamento.
La parte di arresto della domanda è chiara per tutti.
shutdown.exe /?
mostra tutte le opzioni di spegnimento / riavvio / avvio opzioni avanzate / avvio firmware.
Ma vedo così tanti colpi di fulmine gettati in giro per la parte del sonno.
Tutti lo ottengono che rundll32.exe
non dovrebbe essere usato per chiamare funzioni casuali e funziona solo qui in letargo per coincidenza. Ma questa è la natura di Windows: una scatola nera che la gente ha cercato e trovato centinaia di soluzioni alternative per portare a termine un lavoro (grida ai dosaggi).
Ci sono così tante soluzioni " appropriate " che propongono strumenti esterni , ma non riesco a trovare uno script batch nativo (ibrido / pinvoke / qualunque) , anche se questa domanda è rimasta attiva nel corso degli anni.
Quindi ecco il mio semplice 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
Funziona anche come un grande comando a una riga:
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();"