[Ex] Basculer facilement entre 2 options d'alimentation

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
fa03
Niveau 1
Niveau 1
Messages : 2
Enregistré le : jeu. 16 avr. 2015 20:05
Status : Hors ligne

[Ex] Basculer facilement entre 2 options d'alimentation

#1

Message 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.
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

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

#2

Message 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
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
fa03
Niveau 1
Niveau 1
Messages : 2
Enregistré le : jeu. 16 avr. 2015 20:05
Status : Hors ligne

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

#3

Message 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.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#4

Message 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
Répondre