web-dev-qa-db-fra.com

Quelle est la commande à utiliser pour mettre votre ordinateur en veille (pas en veille prolongée)?

Je souhaite mettre mon ordinateur Windows (Windows 7) en veille via une ligne de commande (afin que je puisse me lier au bouton Macro du clavier).

Le bouton d'alimentation sur le PC est configuré pour que l'ordinateur dorme (il est par terre et je suis trop paresseux pour l'atteindre) exactement comme je le veux (dort en mode hybride au cas où je perdrais de l'énergie)

La commande de veille du menu d'arrêt fonctionne également.

la plupart des informations que j'ai trouvées disent d'utiliser;

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

Mais cela met l'ordinateur en mode veille prolongée. J'ai désactivé l'hibernation mais j'utilise un sommeil hybride.

Alors, quelle est la commande à utiliser pour mettre votre ordinateur en veille (pas en veille prolongée)?

63
Eric L

J'ai trouvé une solution. J'ai installé un programme gratuit appelé AutoHotKey et enregistré les étapes permettant d'appeler le menu Démarrer -> Mettre en veille dans un fichier de script. Ensuite, j'ai intégré le fichier de script dans un fichier exécutable autonome, SleepWin7.exe.

Maintenant, je lance simplement SleepWin7.exe pour mettre mon ordinateur en veille hybride.

Vous pouvez désinstaller AutoHotKey si c'est tout ce dont vous avez besoin.


Mise à jour: La solution ci-dessus ne fonctionne pas lorsque l'utilisateur n'est pas connecté, c'est-à-dire l'écran de connexion Windows 7. (Mon ordinateur se lève tous les dimanches à 4 heures du matin pour effectuer une sauvegarde hebdomadaire, ce qui se fait sans connexion.) Dans ce cas, le programme Wizmo fonctionne toujours:

wizmo.exe veille silencieux!

13
Andy Lee

J'espère que vous les trouverez utiles.

Arrêt %windir%\System32\shutdown.exe -s

Redémarrer %windir%\System32\shutdown.exe -r

Déconnexion %windir%\System32\shutdown.exe -l

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

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

Attention: rundll32.exe ne doit pas être utilisé pour lancer powerprof.dll . Au lieu de cela, vous devez appeler directement SetSuspendState. Cela peut être fait en utilisant Powershell - créez un fichier, par exemple sleep.ps1, avec le contenu ci-dessous.

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

Puis exécutez-le en utilisant powershell -File C:\your-path\sleep.ps1. Vous devrez peut-être d’abord exécuter la commande Set-ExecutionPolicy RemoteSigned pour activer l’exécution des scripts powershell.

Le script ci-dessus provoque une suspension du système, qui se met en veille ou en veille prolongée en fonction de votre paramètre de veille prolongée. Pour modifier ce paramètre à partir de la ligne de commande, exécutez powercfg -h off (ou on) à partir de la ligne de commande en tant qu'administrateur.

72
imoatama

Voir l’utilitaire gratuit de Wizmo , qui peut faire beaucoup de choses.
La commande que vous recherchez est probablement:

wizmo en veille

15
harrymc

Vous pouvez créer un fichier avec l'extension .ps1 (powershell) comme "sleep.ps1" et écrire ceci:

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

J'utilise cela quand j'ai quelque chose en cours d'exécution et que je dois quitter le PC et que je ne veux pas l'éteindre. Donc, je change le script pour ressembler à ceci:

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

Et maintenant, quand je le lance, je saisis simplement les minutes que je veux attendre avant de dormir.

Vous pouvez exécuter ceci à partir de la ligne cmd en écrivant

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

Si vous n'avez jamais exécuté de script PowerShell auparavant, vous voudrez tout d'abord exécuter

Set-ExecutionPolicy RemoteSigned

dans PowerShell pour activer l'exécution du script. Cela ne doit être exécuté qu'une seule fois.

14
Artur Carvalho

Avec Sysinternals PsTools [ télécharger ]:

psshutdown -d

en utilisant l'outil de ligne de commande PsShutdown .

(Vous pouvez préférer cette solution si vous avez déjà téléchargé PsTools, il est assez largement utilisé. En dehors de cela, cette approche revient à utiliser wizmoquiet standby.)

Source: https://superuser.com/a/331545/21887

11
Aaron Thoma

J'utilise cet utilitaire SLEEP.EXE depuis des années. Cela fonctionne bien et vous n'avez pas à vous rappeler quels arguments lui attribuer pour le mode suspension (sa forme par défaut de "veille").

7
jjlin

pour désactiver le mode veille prolongée, vous devez utiliser

powercfg -h off

maintenant, rundll32 powrprof.dll, SetSuspendState mettra votre station en mode stanby

[MODIFIER]

en fait, je ne peux pas configurer de mode de veille hybride, car j’ai un ordinateur portable (état qui n’est pas disponible sur les stations mobiles). Pour le mode de veille hybride, vous devez activer la veille prolongée et certains disent que rundll32 powrprof.dll, SetSuspendState, déclenche la veille par défaut. mode dans les paramètres de gestion de l’alimentation du panneau de configuration. veuillez essayer si rundll32 powrprof.dll, SetSuspendState hybrid sleep donne des résultats.

6
user8228

Créez un fichier bat, où 600 correspond à un délai en secondes.

ping -n 600 -w 1 127.0.0.1> nul

powercfg -h off

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

5
dim77x

Si vous êtes compétent pour compiler un programme .NET, utilisez la commande suivante

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

Remarque: Il n'est pas nécessaire de désactiver le mode veille prolongée, comme l'exige la commande rundll32 powrprof.dll,SetSuspendState. Vous pouvez également utiliser PowerState.Hibernate qui mettra en veille la machine si vous le souhaitez.

Vous pouvez facilement compiler un fichier EXE avec cette commande avec n’importe quelle version de Visual Studio . Créez simplement une application console et ajoutez une référence à la DLL System.Windows.Forms.

4
Simon