Page 1 sur 1
[R] Notification clic image et cacher barre des taches
Posté : mer. 27 mai 2009 12:00
par Bubule
Bonjour à tous !
Je suis nouveau sur le forum et même avant de m'y être inscrit j'avais déjà trouvé pas mal de réponse, mais maintenant j'ai un problème :
J'ai une image comme une autre et je souhaite savoir lorsque l'utilisateur clique dessus, j'ai ajouté dans le style la variable "$SS_NOTIFY" mais je ne sais pas comment récupérer le code de retour (je crois que c'est "BBD_Quelquchose") qui indique quand on clique dessus
J'amerais aussi savoir, comme vous pouvez le voir dans le code ci-dessous, comment il serait possible de cacher la barre des taches sans toutefois que cacher aussi les autres fenêtes.
Merci d'avance

, si vous avez besoin du code, le voici :
Je sais que j'en demande beaucoup mais... merci quand même
Code : Tout sélectionner
#include <GUIConstants.au3>
$mwnd = GUICreate("Atlanta", @DesktopWidth, @DesktopHeight, 0, 0, $WS_MAXIMIZE + $WS_POPUP)
GUISetState()
$mnimgbt = GUICreate("", 68, 71, 10, 10, $WS_POPUP, BitOr($WS_EX_LAYERED,$WS_EX_MDICHILD), $mwnd)
GUICtrlCreatePic(@Systemdir & "\oobe\images\merlin.gif", -1, -1, "", "", $SS_NOTIFY)
GUISetState(@SW_SHOW,$pic)
Re: [..] Notification clic image et cacher barre des taches
Posté : mer. 27 mai 2009 12:29
par Iste
POur la premiere question, voir
GUIgetmsg(), ya des exemples avec
Sinon, pour la barre des tache... :/ aucune idée
Re: [..] Notification clic image et cacher barre des taches
Posté : jeu. 28 mai 2009 13:55
par jumby
Bonjour,
Je ne suis pas sûr de te comprendre vraiment :
comment il serait possible de cacher la barre des taches sans toutefois que cacher aussi les autres fenêtes.
Mais pour cacher la barre des tâches, étant donné qu'autoIt ne permet pas de la cacher et qu'il n'y a pas de clef de registre pour la masquer on peut automatiser le click droit propriété sur celle-ci et dans l'onglet barre des tâches, décocher : 'keep the taskbar on top of other windows' (je ne sais pas la traduction exacte en français).
On automatise ceci comme cela :
Pour cacher la barre :
Code : Tout sélectionner
send("{LWIN}")
send("{APPSKEY}")
send("r")
winwait("Taskbar and Start Menu Properties", "Select this menu style for easy access to the Internet, e-mail, and your favorite programs.")
send("+{TAB}")
send("{LEFT}")
ControlCommand ( "Taskbar and Start Menu Properties", "Keep the &taskbar on top of other windows", 1101, "unCheck", "")
controlclick("Taskbar and Start Menu Properties", "OK", 1)
Pour la rétablir :
Code : Tout sélectionner
send("{LWIN}")
send("{APPSKEY}")
send("r")
winwait("Taskbar and Start Menu Properties", "Select this menu style for easy access to the Internet, e-mail, and your favorite programs.")
send("+{TAB}")
send("{LEFT}")
ControlCommand ( "Taskbar and Start Menu Properties", "Keep the &taskbar on top of other windows", 1101, "Check", "")
controlclick("Taskbar and Start Menu Properties", "OK", 1)
Bien entendu, il va falloir modifier le code suivant le langage de windows.
Ceci fonctionne très bien pour moi avec windows xp pro en anglais.
Re: [..] Notification clic image et cacher barre des taches
Posté : jeu. 28 mai 2009 17:23
par Bubule
Ok, ben merci pour la barre des taches, mais pour le GUIGetMsg, il faut que je prenne le code de retour de l'image ?
Re: [..] Notification clic image et cacher barre des taches
Posté : jeu. 28 mai 2009 18:01
par Iste
Le principe des GUI dans autoit, c'est :
Quand tu crée un controle, la fonction de création renvoi le handle du ctrl.
Par la suite, il te faut une boucle. Dans cette boucle tu place un GUIGetMsg() qui renvoi le handle du control sur le quel tu clic
Et a la suite du GUIGetMsg(), des conditions (généralement un switch ou select) pour effectuer des action suivant le controle cliqué
Soit
Code : Tout sélectionner
GUICreate ("")
$bouton = GUICtrlCreateButton("bouton",0,0)
GUISetState ()
while 1
$msg = GUIGetMsg()
Select
Case $msg = $bouton
MsgBox("","","salut")
EndSelect
wend
Re: [..] Notification clic image et cacher barre des taches
Posté : jeu. 28 mai 2009 18:07
par jumby
Si tu cherches à détecter un click gauche, c'est très simple, il suffit de passer par le bon vieux case.
Pour reprendre ton script, voici ce que cela donnerait :
Code : Tout sélectionner
#include <GUIConstants.au3>
$mwnd = GUICreate("Atlanta", @DesktopWidth, @DesktopHeight, 0, 0, $WS_MAXIMIZE + $WS_POPUP)
GUISetState()
$mnimgbt = GUICreate("", 68, 71, 10, 10, $WS_POPUP, BitOr($WS_EX_LAYERED,$WS_EX_MDICHILD), $mwnd)
$Pic1 = GUICtrlCreatePic(@Systemdir & "\oobe\images\merlin.gif", -1, -1, "", "", $SS_NOTIFY) ; La variable $Pic1 représente toute la guictrl de l'image, de cette manière on réutilise cette variable plus tard avec case pour définir ce qui se passe lorsque l'on click dessus.
GUISetState(@SW_SHOW,$pic)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Pic1
MsgBox(0, "Click détecté", "Click détecté")
EndSwitch
WEnd
Re: [..] Notification clic image et cacher barre des taches
Posté : mar. 02 juin 2009 17:20
par Bubule
Ok, ben merci à vous, je l'ai pas testé, je vais le le faire.
Je connaît le principe de fonctionnement de AutoIT, mais je ne comprends pas du tout les fonctions Select et Case
Re: [..] Notification clic image et cacher barre des taches
Posté : mar. 02 juin 2009 17:48
par TaPuZ
Select ... EndSelect sont les deux bornes dans lesquelles tu vas utiliser les "cases"
Pourquoi?
Si tu as plusieurs cas de figure auxquels il faut répondre.
Le cas où $var = 1, celui où $var = 2, et les autres cas...
Tu indiques à l'interpréteur que tu vas utiliser des "cases" (cas de figure) grâce à "Select"
et tu indiques que tu as fini de lister tes cas de figures avec EndSelect
Du coup ça donne un truc du genre
Code : Tout sélectionner
Select ; je vais utliiser la fonction case
Case $var = 1 ; si jamais $var = 1
Action 1 ; je fais mon action 1
Case $var = 2 ; si jamais $var = 2
Action 2 ; je fais mon action 2
Case Else ; si jamais c'est un autre cas de figure
Action 3 ; je fais mon action 3
EndSelect ; Ayé, j'ai fini de lister mes cas de figure...
Re: [..] Notification clic image et cacher barre des taches
Posté : sam. 06 juin 2009 10:25
par Bubule
Ok, j'ai compris, on peut utiliser aussi les ElseIf, c'est un peu pareil non ?
Re: [R] Notification clic image et cacher barre des taches
Posté : sam. 06 juin 2009 13:21
par Iste
C'est exactement pareil. Les Select et Switch sont la juste pour etre plus pratique
Code : Tout sélectionner
If $var = 1 Then
$num = "A"
ElseIf $var = 2 Then
$num = "A"
ElseIf $var = 3 Then
$num = "B"
ElseIf $var = 4 Then
$num = "B"
Else
$num = 0
EndIf
Code : Tout sélectionner
Select
Case $var = 1
$num = "A"
Case $var = 2
$num = "A"
Case $var = 3
$num = "B"
Case $var = 4
$num = "B"
Case Else
$num = 0
EndSelect
Code : Tout sélectionner
Switch $var
Case 1 To 2
$num = "A"
Case 3 To 4
$num = "B"
Case Else
$num = 0
EndSwitch
Re: [R] Notification clic image et cacher barre des taches
Posté : dim. 07 juin 2009 18:53
par Bubule
Ok, ben merci, c'est pas bête, je ne comprennais pas ces fonctions avant. Maintenant sa va être plus pratique !
Merci
