Je sais que presque tout sur Windows, comme l’ouverture de tout type d’application, peut être fait à partir de la commande invite ou du menu Exécuter .
Comment puis-je mettre mon ordinateur en veille ou l'éteindre ? Quelle est la commande pour ça?
Vous trouverez shutdown.exe
pour être votre ami.
Autres commandes pratiques voir this post:
Ordinateur en veille (en savoir plus sur https://superuser.com/a/463652/249349 )
Verrouiller le poste de travail
Ordinateur Hibernate
see answers by Scott Chamberlain and Eric L
Redémarrer l'ordinateur
Shutdown.exe -r -t 00
Éteindre l'ordinateur
Shutdown.exe -s -t 00
EDIT/UPDATE:
Il semble que le fait de dormir sur un ordinateur pose problème si le mode veille prolongée est activé.
Copier d'autres réponses:
Vous pouvez soit essayer PsShutdown ou:
La commande pundrprof.dll rundll32.exe, SetSuspendState 0,1,0 pour la mise en veille est correcte. Toutefois, elle est mise en veille au lieu de la mise en veille si vous ne la désactivez pas.
Voici comment faire cela:
Accédez au menu Démarrer et ouvrez une invite de commande avec privilèges élevés en tapant cmd.exe, en cliquant avec le bouton droit de la souris et en choisissant Exécuter en tant qu'administrateur. Tapez la commande suivante:
powercfg -hibernate off
Les méthodes publiées par d'autres personnes ne fonctionnent pas correctement si la mise en veille prolongée d'un ordinateur est activée, l'ordinateur ne se réveillera pas sur le clavier ou, plus important encore, ne se réveillera pas lors d'une tâche planifiée.
L'un des outils Sysinternals de Microsoft est PsShutdown à l'aide de la commande psshutdown -d -t 0
, il dormira correctement, pas en veille prolongée , un ordinateur
La commande rundll32.exe powrprof.dll,SetSuspendState 0,1,0
for sleep est correcte. Toutefois, elle passe en veille prolongée au lieu de dormir si vous ne désactivez pas le mode veille prolongée.
Voici comment faire cela:
Accédez au menu Démarrer et ouvrez une invite de commande avec privilèges élevés en tapant cmd.exe
, en cliquant avec le bouton droit de la souris et en choisissant Exécuter en tant qu'administrateur . Tapez la commande suivante:
powercfg -hibernate off
NirCmd fonctionne sous Windows 8 (je suppose que cela fonctionne également avec Windows 7) → http://www.nirsoft.net/utils/nircmd.html
La commande est standby
, mais l'ordinateur est en veille.
nircmd.exe standby
Si vous avez activé la veille hybride, cela fonctionnera; c'est-à-dire qu'il met l'ordinateur en veille et copie la mémoire sur le disque en cas de coupure de courant.
Voir l’utilitaire gratuit de Wizmo , qui peut faire beaucoup de choses.
La commande que vous recherchez est probablement:
wizmo en veille
J'ai créé un raccourci pour rundll32.exe powrprof.dll,SetSuspendState 0,1,0
(également essayé avec 0,0,0), mais le raccourci semble mettre mon PC en veille prolongée. Je ne pouvais pas réveiller le PC en utilisant le clavier; J'ai dû appuyer sur le bouton d'alimentation, et le PC a montré les messages après la carte mère, etc.
Après avoir lu le document API Windows , j'ai créé un programme très simple avec seulement 3 lignes de frappe. J'ai téléchargé l'exécutable que j'ai compilé dans cette page (cliquez sur "SleepTest.exe") , mais ce fichier pourrait être supprimé après un certain temps (il s'agit d'un site d'hébergement de fichiers gratuit que je viens de trouver grâce à une recherche rapide dans Google ).
Si vous ne me faites pas confiance (ce qui est tout à fait correct) ou si le fichier a été supprimé, vous pouvez compiler le code vous-même, bien sûr. Vous devez ajouter "PowrProf.lib" aux dépendances supplémentaires de l'éditeur de liens.
#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
semble faire la même chose, mais d'une manière ou d'une autre, le programme ci-dessus n'a pas mis l'ordinateur en veille prolongée. Je pourrais réveiller le PC instantanément (pas de messages de la carte mère, etc.) en appuyant sur n’importe quelle touche du clavier.
Vous pouvez lancer les options suspend ou hibernate à partir de la ligne de commande, comme indiqué ci-dessous et référencé dans cet article .
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
Si votre ordinateur est configuré pour autoriser l'hibernation, la commande ci-dessus lancera l'hibernation. Si la fonction de veille prolongée est désactivée, elle passera en état de veille. Comme d'autres utilisateurs ont répondu précédemment, shutdown.exe /?
fournira de nombreuses options d'arrêt.
Si vous avez Python (avec pywin32) disponible, vous pouvez également appeler cette fonction SetSuspendState directement avec:
import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)
Cela peut facilement être mis dans un fichier de commandes ou un raccourci comme:
pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"
Ainsi, si vous n'avez pas associé vos fichiers .py à l'interprète, vous pouvez simplement cliquer deux fois sur le lien.
La partie arrêt de la question est claire pour tout le monde.shutdown.exe /?
indique tous les choix en matière d’arrêt/redémarrage/options avancées d’amorçage/d’amorçage du microprogramme.
Mais je vois tellement dénigrement jeté autour de la partie du sommeil.
Tout le monde comprend que rundll32.exe
ne devrait pas être utilisé pour appeler des fonctions aléatoires et que cela fonctionne ici uniquement en mode hibernation entièrement par hasard. Mais c'est la nature de Windows - une boîte noire dans laquelle les gens ont fouillé et ont trouvé des centaines de solutions de contournement pour faire un travail (crier aux dostips).
Il y a tellement de solutions "propres" qui proposent outils externes}, mais je n'arrive pas à trouver un script batch natif (hybride/pinvoke/quel que soit)}, même si cette question est restée active au fil des ans.
Alors voici mon simplepower_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
Cela fonctionne même comme une grosse commande d'une ligne:
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();"
seul QUICK SLEEPER fonctionne pour moi (fonctionne sous Windows 7,8,10).
p.s. code source disponible ici .
Vous devez d'abord désactiver Hibernate dans Windows, puis placer l'ordinateur dans Sleep state. Utilisez les deux commandes suivantes:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
et pour effectuer une action inverse, Hibernating l'ordinateur, utilisez les commandes ci-dessous:
powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate