Page 1 sur 1

[Ex] Basculer facilement entre 2 options d'alimentation

Posté : jeu. 16 avr. 2015 21:58
par fa03
J'en avais assez des téléchargements avortés pour cause de mise en veille, alors pour basculer rapidement d'un mode "utilisation normale" avec mise en veille à un mode "toujours actif" et vice-versa, j'ai lu ça :
http://www.pcastuces.com/pratique/astuces/2665.htm
et puis ça :
http://lifehacker.com/5664251/toggle-po ... autohotkey
et en synthèse ça a donné ça :

Code : Tout sélectionner

#NoTrayIcon
#include <TrayConstants.au3> 

   Opt("TrayMenuMode", 3) 

   Local $mode1 = TrayCreateItem("Mode normal", -1, -1, 1)
   Local $mode2 = TrayCreateItem("Toujours actif", -1, -1, 1)
   TrayCreateItem("") 
   Local $idExit = TrayCreateItem("Quitter")

   Local $pwrstate = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes", "ActivePowerScheme")

   If $pwrstate = "381b4222-f694-41f0-9685-ff5bb260df2e" Then
       TraySetIcon(@WindowsDir & "\System32\powercpl.dll", 514)
       TrayItemSetState($mode1, $TRAY_CHECKED)
   ElseIf $pwrstate = "bde3f8e0-678f-4fa0-ae65-6023c24adf51" Then
       TraySetIcon("powercpl.dll", 515)
       TrayItemSetState($mode2, $TRAY_CHECKED)
   Else
       Exit
   EndIf

   TraySetToolTip("Options d'alimentation")

    While 1
        Switch TrayGetMsg()
            Case $mode1
                  Run(@WindowsDir & "\System32\powercfg.exe -setactive 381b4222-f694-41f0-9685-ff5bb260df2e","",@SW_HIDE)
                  TraySetIcon(@WindowsDir & "\System32\powercpl.dll", 514)
                  TrayItemSetState($mode1, $TRAY_CHECKED)
            Case $mode2
                  Run(@WindowsDir & "\System32\powercfg.exe -setactive bde3f8e0-678f-4fa0-ae65-6023c24adf51","",@SW_HIDE)
                  TraySetIcon("powercpl.dll", 515)
                  TrayItemSetState($mode2, $TRAY_CHECKED)
            Case $idExit
                ExitLoop
         EndSwitch
    WEnd
Depuis je dors mieux, je mange plus équilibré, je n'ai plus d'acouphène et je revois mes amis.

Re: [Ex] Basculer facilement entre 2 options d'alimentation

Posté : ven. 17 avr. 2015 11:38
par walkson
Bonjour,
fa03 a écrit :Depuis je dors mieux, je mange plus équilibré, je n'ai plus d'acouphène et je revois mes amis.
Je savais beaucoup d'avantages à Autoit mais là j'en reste coi ! :mrgreen:
Hélas, il y a un problème:

Code : Tout sélectionner

Modes de gestion de l'alimentation existants (* Actif)
-----------------------------------
GUID du mode de gestion de l'alimentation : 381b4222-f694-41f0-9685-ff5bb260df2e  (Usage norma
l) *
GUID du mode de gestion de l'alimentation : 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (Performance
s élevées)
GUID du mode de gestion de l'alimentation : a1841308-3541-4fab-bc81-f71556f20b4a  (Économie d'
énergie)

C:\Users\Pc>powercfg.exe -setactive bde3f8e0-678f-4fa0-ae65-6023c24adf51
Le schéma d'alimentation activé n'est pas valide
Sous Win 7 32

Re: [Ex] Basculer facilement entre 2 options d'alimentation

Posté : ven. 17 avr. 2015 14:28
par fa03
Bonjour Walkson,
Bon, j'ai rédigé tout ça un peu vite. Moi je n'ai que 2 modes de gestion d'alim. mais on peut en avoir 3 ou 4 et en créer je pense autant qu'on veut à partir du panneau de configuration. Il faut en premier lieu trouver leur "GUID" en tapant dans l'invite de commande powercfg -list (voir 1er lien). On peut ensuite les activer avec powercfg.exe -setactive (GUID) mais ça ne marche que pour un mode existant. En l'occurence le mode de GUID bde3f8e0-678f-4fa0-ae65-6023c24adf51 c'est un mode personnalisé que j'ai créé à partir du panneau de configuration pour ne pas avoir de mise en veille.
Après on adapte le code avec ces GUID (avec en plus si nécessaire une variable $mode3, une variable $mode4...). On va chercher les icônes qui vont bien dans powercpl.dll ou ailleurs (je l'ai fait avec Icon Sushi) et puis voilà.
Je suis sous win 8.1 32 mais je pense que c'est sans conséquence sur tout ça.

Re: [Ex] Basculer facilement entre 2 options d'alimentation

Posté : ven. 17 avr. 2015 17:15
par orax
C'est bien pratique, ça fait gagner du temps ! ^^ J'ai vu qu'il était aussi possible d'utiliser le WMI plutôt que powercfg. => https://msdn.microsoft.com/en-us/librar ... 85%29.aspx Voici donc une alternative d'après l'exemple de fa03.
► Afficher le texte