[R] Notification clic image et cacher barre des taches

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Bubule
Niveau 4
Niveau 4
Messages : 55
Enregistré le : mer. 27 mai 2009 11:40
Status : Hors ligne

[R] Notification clic image et cacher barre des taches

#1

Message 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 :D , 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)
 
Modifié en dernier par Bubule le sam. 06 juin 2009 10:26, modifié 1 fois.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Notification clic image et cacher barre des taches

#2

Message par Iste »

POur la premiere question, voir GUIgetmsg(), ya des exemples avec

Sinon, pour la barre des tache... :/ aucune idée
Signez ici
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Notification clic image et cacher barre des taches

#3

Message 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.
Avatar du membre
Bubule
Niveau 4
Niveau 4
Messages : 55
Enregistré le : mer. 27 mai 2009 11:40
Status : Hors ligne

Re: [..] Notification clic image et cacher barre des taches

#4

Message 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 ?
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Notification clic image et cacher barre des taches

#5

Message 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.

Code : Tout sélectionner

$handle = Guictrlcreatebutton ("bouton",0,0)
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

Code : Tout sélectionner

while 1
$msg = GUIGetMsg()
wend
Et a la suite du GUIGetMsg(), des conditions (généralement un switch ou select) pour effectuer des action suivant le controle cliqué

Code : Tout sélectionner

Select
    Case $msg = $bouton
EndSelect
Soit

Code : Tout sélectionner

GUICreate ("")
$bouton = GUICtrlCreateButton("bouton",0,0)
GUISetState ()

while 1
    $msg = GUIGetMsg()
    
    Select
        Case $msg = $bouton
            MsgBox("","","salut")
    EndSelect
wend

 
Signez ici
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Notification clic image et cacher barre des taches

#6

Message 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
 
Avatar du membre
Bubule
Niveau 4
Niveau 4
Messages : 55
Enregistré le : mer. 27 mai 2009 11:40
Status : Hors ligne

Re: [..] Notification clic image et cacher barre des taches

#7

Message 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
TaPuZ
Niveau 4
Niveau 4
Messages : 75
Enregistré le : jeu. 14 mai 2009 17:10
Status : Hors ligne

Re: [..] Notification clic image et cacher barre des taches

#8

Message 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...
 
A bientôt,
T@PµZ.
____________________________________
Avatar du membre
Bubule
Niveau 4
Niveau 4
Messages : 55
Enregistré le : mer. 27 mai 2009 11:40
Status : Hors ligne

Re: [..] Notification clic image et cacher barre des taches

#9

Message par Bubule »

Ok, j'ai compris, on peut utiliser aussi les ElseIf, c'est un peu pareil non ?
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [R] Notification clic image et cacher barre des taches

#10

Message 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
Signez ici
Avatar du membre
Bubule
Niveau 4
Niveau 4
Messages : 55
Enregistré le : mer. 27 mai 2009 11:40
Status : Hors ligne

Re: [R] Notification clic image et cacher barre des taches

#11

Message par Bubule »

Ok, ben merci, c'est pas bête, je ne comprennais pas ces fonctions avant. Maintenant sa va être plus pratique !

Merci :D
Répondre