Page 1 sur 1
[R] Bouton à cliquer
Posté : jeu. 17 avr. 2008 16:30
par neii
Bonjour,
Je n'arrete pas de chercher tout ce que je peux depuis des heures, mais sans trouver...
Sur la fenetre de gestion de l'alimentation,
Je voudrais simuler l'appuie sur le bouton "enregistrer sous...",
J'ai récupéré ceci avec AutoIt Window Info concernant le bouton :
Control ID : 1001
ClassNameNN : button2
Text : Enregi&strer sous...
Alors je code ceci :
Code : Tout sélectionner
$titre = "Propriétés de Options d'alimentation"
WinWait($titre)
WinActivate($titre)
ControlClick($Titre, "", "1001")
Ca ne le presse pas, j'ai essayé plein de combinaisons trouvées sur le forum, mais non plus...
Est-ce que quelqu'un pourrait m'avancer ? Merci d'avance
Re: [..] Bouton à cliquer
Posté : jeu. 17 avr. 2008 16:48
par stephim
Salut,
J'aurai plutôt mis:
Stephim
Re: [R] Bouton à cliquer
Posté : jeu. 17 avr. 2008 16:52
par neii
Merci pour la réactivité,
Et c'est bon, ca marche
(il me semblait bien avoir tenté cette combinaison de paramètres)
Bonne suite

Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 14:28
par arrkhan
Malgre le fait que le topic soit resolu, je me permet de demander pourquoi ne pas passer directement par le registre, pour modifier l info qu il te faut plus que par la gui, ca te ferai je pense gagner de nombreuse ligne dans ton code, apres ce que j'en dit hein ^^
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 15:00
par neii
En fait, j'ai fait une petite "appli" (je l'ai fini) qui me permet : D'intégrer automatiquement deux nouveaux modes de gestion de manière automatique (supprimant ceux par défaut), ou de faire un backup des modes par défaut (avec du cmd dans autoit). Enfin, j'ai deux boutons qui me permettent de choisir à n'importe quel moment quel mode de gestion je souhaite être sous, à savoir que mon pc étant allumé 24/24 7/7, je change juste d'état quand je pars hors de chez moi, ou dodo, etc, ou inversement quand je reste en activité dessus :
Sur une petite interface (100*80) j'ai 4 boutons :
(mode) Actif : Rien ne s'éteint ni ne s'arrête ("jamais", "jamais", "jamais")
(mode) Inactif : L'écran et les DD s'arrêtent ("1mn", "3mn", "jamais")
Intégration : Créée les deux modes et supprime ceux par défaut
Backup : Backup des modes par défaut
Ai-je répondu à ta question ?
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 15:31
par arrkhan
Eh bien felicitation, met nous eventuellement ton code, si ca peut en inspirer certains ou meme si on peut t'aider a l ameliorer...
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 15:35
par neii
Oui, aucun souci (il y aura probablement à améliorer, je débute depuis hier).
Ici ? Ou peut-être dans la section "exemple de script" ?
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 15:36
par arrkhan
met le ici pour commencer.
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 15:43
par neii
Gestion de l'alimentation :
► Afficher le texte
Code : Tout sélectionner
#Include<GUIConstants.au3>
#NOTRAYICON
$gui = GUICreate("Gestion de l'alimentation", 100,80)
$btn1 = GUICtrlCreateButton ("ACTIVITE", 0,0,100,20)
$btn2 = GUICtrlCreateButton ("INACTIVITE", 0,20,100,20)
$btn3 = GUICtrlCreateButton ("Intégration", 0,40,100,20)
$btn4 = GUICtrlCreateButton ("Backup", 0,60,100,20)
GUISetState()
$titre = "Propriétés de Options d'alimentation"
Do
$msg = GUIGetMsg()
Select
Case $msg = $btn1
Run("control powercfg.cpl display,,1")
WinWait($titre)
WinActivate($titre)
ControlCommand($titre, "", "ComboBox1", "SetCurrentSelection", 0)
ControlClick($titre, "", "Button5")
Case $msg = $btn2
Run("control powercfg.cpl display,,1")
WinWait($titre)
WinActivate($titre)
ControlCommand($titre, "", "ComboBox1", "SetCurrentSelection", 1)
ControlClick($titre, "", "Button5")
Case $msg = $btn3
Run(@ComSpec & " /c " & "powercfg RestoreDefaultPolicies", "", @SW_HIDE)
Run(@ComSpec & " /c " & "powercfg -h off", "", @SW_HIDE)
Run("control powercfg.cpl display,,1")
WinWait($titre)
WinActivate($titre)
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
ControlCommand($titre, "", "ComboBox2", "SetCurrentSelection", 15)
ControlCommand($titre, "", "ComboBox3", "SetCurrentSelection", 15)
ControlCommand($titre, "", "ComboBox4", "SetCurrentSelection", 15)
ControlClick($titre, "", "Button2")
Send("Actif")
Send("{ENTER}")
ControlCommand($titre, "", "ComboBox1", "SetCurrentSelection", 0)
ControlClick($titre, "", "Button3")
Send("{ENTER}")
ControlCommand($titre, "", "ComboBox2", "SetCurrentSelection", 0)
ControlCommand($titre, "", "ComboBox3", "SetCurrentSelection", 0)
ControlClick($titre, "", "Button2")
Send("Inactif")
Send("{ENTER}")
ControlCommand($titre, "", "ComboBox1", "SetCurrentSelection", 0)
ControlClick($titre, "", "Button5")
MsgBox(0,"Intégration des modes de Gestion d'alimentation", "L'intégration des modes a été effectuée.")
Case $msg = $btn4
Run(@ComSpec & " /c " & "powercfg RestoreDefaultPolicies", "", @SW_HIDE)
Run(@ComSpec & " /c " & "powercfg -h off", "", @SW_HIDE)
MsgBox(0,"Backup des modes par défaut de Gestion d'alimentation", "Les modes de Gestion de l'alimentations ont étés remis par défaut.")
Case $msg = $GUI_EVENT_CLOSE
EndSelect
Until $msg = $GUI_EVENT_CLOSE
Voilà, si il y a de l'amélioration à faire, ne pas hésiter à me le dire (penser à mon bas niveau quand même

)
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 16:10
par arrkhan
bon premier script ^^
tu peux grandement le simplifier, en configurant les prereglages deja existant et tu en creer un autre:
Boulot : jamais, jamais, jamais
Dodo : 1min, 3min, jamais
pour creer Dodo ou Boulot, tu tape dans la console
puis tu change les parametre comme suis:
Code : Tout sélectionner
powercfg /x "Dodo" /monitor-timeout-ac 1 /disk-timeout-ac 3 /standby-timeout-ac 0 /hibernate-timeout-ac 0
ensuite tu peux faire appel au bon mode en utilisant la commande:
voila deja pour supprimer les acces a la GUI windows, tu peux eventuellement aussi supprimer ta GUI et faire en sorte que ton appli ne soit que dans le systray (pres de l'horloge), un clique droit sur la petite icone et hop tu as acces aux menu, ou meme mieux un double click sur l'icone et ca change automatiquement le mode....
esperant avoir reussi a eveiller ta curiosité, je te souhaite un bon codage ^^'
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 16:15
par neii
Super, je ne connaissais pas du tout ces commandes pour powercfg !
En effet ca va simplifier un peu tout ca, je m'y remets du coup
Merci bien

Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 17:44
par neii
Voilà avec les modifications, c'est bien plus pratique comme ca, en effet ^^
Code : Tout sélectionner
#Include<GUIConstants.au3>
#NOTRAYICON
$gui = GUICreate("Gestion de l'alimentation", 100,80)
$btn1 = GUICtrlCreateButton ("ACTIVITE", 0,0,100,20)
$btn2 = GUICtrlCreateButton ("INACTIVITE", 0,20,100,20)
$btn3 = GUICtrlCreateButton ("Intégration", 0,40,100,20)
$btn4 = GUICtrlCreateButton ("Backup", 0,60,100,20)
GUISetState()
$titre = "Propriétés de Options d'alimentation"
Do
$msg = GUIGetMsg()
Select
Case $msg = $btn1
RunWait(@ComSpec & " /c " & "powercfg -s Actif", "", @SW_HIDE)
Case $msg = $btn2
RunWait(@ComSpec & " /c " & "powercfg -s Inactif", "", @SW_HIDE)
Case $msg = $btn3 or $msg = $btn4
RunWait(@ComSpec & " /c " & "powercfg RestoreDefaultPolicies", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -h off", "", @SW_HIDE)
if $msg = $btn3 Then
RunWait(@ComSpec & " /c " & "powercfg -c Inactif", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -x Inactif /monitor-timeout-ac 1 /disk-timeout-ac 3 /standby-timeout-ac 0", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -c Actif", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -x Actif /monitor-timeout-ac 0 /disk-timeout-ac 0 /standby-timeout-ac 0", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -s Actif", "", @SW_HIDE)
Endif
Case $msg = $GUI_EVENT_CLOSE
EndSelect
Until $msg = $GUI_EVENT_CLOSE
J'aimerai pouvoir passer à la suite de ce que tu me disais qui m'interressais grandement :
tu peux eventuellement aussi supprimer ta GUI et faire en sorte que ton appli ne soit que dans le systray (pres de l'horloge), un clique droit sur la petite icone et hop tu as acces aux menu, ou meme mieux un double click sur l'icone et ca change automatiquement le mode....
Est-ce que tu pourrais m'aiguiller pour arriver à le faire comme ca ?
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 17:59
par ani
Code : Tout sélectionner
#Include <GUIConstants.au3>
Opt("TrayMenuMode",1) ; on retire du systray la pause et exit qui sont par défault
#NOTRAYICON
$gui = TrayCreateMenu("Gestion de l'alimentation") ;GUICreate("Gestion de l'alimentation", 100,80)
$btn1 = TrayCreateItem("ACTIVITE",$gui) ;GUICtrlCreateButton ("ACTIVITE", 0,0,100,20)
$btn2 = TrayCreateItem("INACTIVITE",$gui) ;GUICtrlCreateButton ("INACTIVITE", 0,20,100,20)
$btn3 = TrayCreateItem("Intégration",$gui) ;GUICtrlCreateButton ("Intégration", 0,40,100,20)
$btn4 = TrayCreateItem("Backup",$gui) ;GUICtrlCreateButton ("Backup", 0,60,100,20)
TrayCreateItem("")
$btn5 = TrayCreateItem("Exit")
TraySetState() ;GUISetState()
while 1
$msg = TrayGetMsg() ;$msg = GUIGetMsg()
Select
Case $msg = $btn1
RunWait(@ComSpec & " /c " & "powercfg -s Actif", "", @SW_HIDE)
Case $msg = $btn2
RunWait(@ComSpec & " /c " & "powercfg -s Inactif", "", @SW_HIDE)
Case $msg = $btn3 or $msg = $btn4
RunWait(@ComSpec & " /c " & "powercfg RestoreDefaultPolicies", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -h off", "", @SW_HIDE)
if $msg = $btn3 Then
RunWait(@ComSpec & " /c " & "powercfg -c Inactif", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -x Inactif /monitor-timeout-ac 1 /disk-timeout-ac 3 /standby-timeout-ac 0", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -c Actif", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -x Actif /monitor-timeout-ac 0 /disk-timeout-ac 0 /standby-timeout-ac 0", "", @SW_HIDE)
RunWait(@ComSpec & " /c " & "powercfg -s Actif", "", @SW_HIDE)
Endif
Case $msg = $btn5
ExitLoop
EndSelect
WEnd
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 18:14
par neii
Merci beaucoup à toi de te pencher sur la question Ani,
Cependant j'ai une erreur ~"unknown function ligne 5" quand je veux essayer tes modifs :s
(fonction TrayCreateMenu non reconnue ?)
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 18:20
par ani
Quel version d'autoit possédez-vous ?
Essayez en remplacant #Include <GUIConstants.au3> par #Include <Constants.au3>
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 18:23
par neii
Ma version d'AutoIt était la 3.1.1,
Avec la version 3.2.. Ca marche impec'
Merci !
Re: [R] Bouton à cliquer
Posté : ven. 18 avr. 2008 18:36
par ani
a wouai la 3.1.1 version dépassé
regardez dans l'aide si le traymenu existe,
Sinon je vous conseil de prendre la dernière version 3.2.10 du 25/11/2007
y pas mal de changement et bcp mieux
Re: [R] Bouton à cliquer
Posté : sam. 19 avr. 2008 02:49
par Greenhorn
neii a écrit :Bonjour,
Je n'arrete pas de chercher tout ce que je peux depuis des heures, mais sans trouver...
Sur la fenetre de gestion de l'alimentation,
Je voudrais simuler l'appuie sur le bouton "enregistrer sous...",
J'ai récupéré ceci avec AutoIt Window Info concernant le bouton :
Control ID : 1001
ClassNameNN : button2
Text : Enregi&strer sous...
Alors je code ceci :
Code : Tout sélectionner
$titre = "Propriétés de Options d'alimentation"
WinWait($titre)
WinActivate($titre)
ControlClick($Titre, "", "1001")
Ca ne le presse pas, j'ai essayé plein de combinaisons trouvées sur le forum, mais non plus...
Est-ce que quelqu'un pourrait m'avancer ? Merci d'avance
Hi,
sorry, my french is not so good, so I will post in english ...
If you want to use the control ID in AutoIt, you must use numerics, no string.
So, your code must look like this ...
Code : Tout sélectionner
$titre = "Propriétés de Options d'alimentation"
WinWait($titre)
WinActivate($titre)
;~ ControlClick($Titre, "", "1001")
; write control ID as numeric, then it works ...
If ControlClick($Titre, "", 1001) Then
MsgBox(266304, Default, '@error = ' & @error)
EndIf
I hope I could help a little.
Greetz
Greenhorn
Re: [R] Bouton à cliquer
Posté : sam. 19 avr. 2008 03:39
par neii
I've tried without them too (if i remember enough),
Even if the problem was solved by stephim, thx to you.