Page 1 sur 1

[..] Interagire avec le bouton AutoIt en permanence.

Posté : mar. 23 juin 2009 20:11
par Kikoolol
Bonjour.
J'aimerais pouvoir utiliser mon bouton "Quitter" (qui se situe en bas à droite, en faisant une clique droit sur le Logo d'AutoIt.) [Par défaut, Exit / Script Paused]
J'ai donc modifier les valeurs par défaut par "Quitter" et "Aide" :

Code : Tout sélectionner

Opt("TrayMenuMode",1)
$aideitem       = TrayCreateItem("Aide")
TrayCreateItem("")
$exititem       = TrayCreateItem("Quitter")
TraySetState()

While 1

    $msg = TrayGetMsg()
    $nMsg = GUIGetMsg() ; Indispensable mais je sais pas a quoi ça sert

    Select ; Les boutons du logo en bas a droite
        Case $msg = $exititem
            ExitLoop
            Exit

        Case $msg = $aideitem
            ShellExecute("site")
    EndSelect

    Switch $nMsg


        Case $GUI_EVENT_CLOSE
        Exit

        Case $Button1

                SCRIPT ICI

        EndSwitch
Wend

 
Lorsque je lance mon application, (je tombe directement sur une GUI) les actions quitter et aide fonctionnent, seulement dés que je lance le script (à savoir le bouton 1 ($case 1)) les boutons sont visible mais n'ont plus aucun effets ! J'aimerais savoir comment les rendre actifs.

Merci d'avance !

Re: [..] Interagire avec le bouton AutoIt en permanence.

Posté : mar. 23 juin 2009 22:02
par Tlem
Dans votre boucle While, c'est Select ou Switch mais pas les deux.

Re: [..] Interagire avec le bouton AutoIt en permanence.

Posté : lun. 29 juin 2009 18:23
par guitarist
Je pense l'avoir améliorer comme sa :
► Afficher le texte
Bon pour ton information GuiGetMsg donne les infos concernant ce qui se passe sur ta gui
là j'ai enlever ta gui mais que tu peux bien évidement rajouter toi même.
Comme le disait notre cher admin c'est soit Select soit Switch mais pas les deux.

Re: [..] Interagire avec le bouton AutoIt en permanence.

Posté : lun. 06 juil. 2009 13:14
par Kikoolol
Merci beaucoup pour vos réponses.

Cependant, n'y a t-il pas un moyen de faire "disparaitre" ses boutons lors du démarrage du Case $Button1 ?
Je trouve que cela fait très "moche" des boutons qui ne marchent pas :(

Re: [..] Interagire avec le bouton AutoIt en permanence.

Posté : lun. 06 juil. 2009 19:23
par SagePourpre
Voici ce que tu dois ajouter...

GUICtrlSetState($quitter,$GUI_DISABLE)


et

GUICtrlSetState($quitter,$GUI_ENABLE)
pour que le bouton soit à nouveau fonctionnel après ton script.

La variable $quitter ici doit être remplacée par la variable de ton bouton à griser.

(Exemple fonctionnel ci-dessous)



► Afficher le texte

Re: [..] Interagire avec le bouton AutoIt en permanence.

Posté : lun. 06 juil. 2009 19:43
par Kikoolol
Merci beaucoup SagePourpre pour ta réponse mais je ne comprend pas très bien comment fonctionne le script.
Pourrais tu m'expliquer ?

Re: [..] Interagire avec le bouton AutoIt en permanence.

Posté : lun. 06 juil. 2009 20:05
par SagePourpre
Kikoolol a écrit :Merci beaucoup SagePourpre pour ta réponse mais je ne comprend pas très bien comment fonctionne le script.
Pourrais tu m'expliquer ?


En fait, tu dois comprendre seulement ceci

GUICtrlSetState($quitter,$GUI_DISABLE)


et

GUICtrlSetState($quitter,$GUI_ENABLE)


Tu mets le disable au début de ta boucle (au moment ou tu souhaites que le bouton devienne indisponible)


et le enable lorsque tu veux rendre le bouton cliquable à nouveau .





********************************************************************************







Mon script quant à lui est seulement là pour illustrer l'intégration de GUICtrlSetState($quitter,$GUI_DISABLE)

et GUICtrlSetState($quitter,$GUI_ENABLE)



... Mais pour te donner une idée, j'utilise un système différent pour faire fonctionner ma gui



En mettant cette ligne au début d'un script,

Opt("GUIOnEventMode", 1)

cela rend inutilisable GUIGetMsg au profit de GuiSetOnEvent() et GuiCtrlSetOnEvent()
(C'est une manière différente de procéder que Koda, entre autres, utilise.


GUISetOnEvent($GUI_EVENT_CLOSE,"fonction") par exemple...


$GUI_EVENT_CLOSE est une variable globale interne qui est mise à 1 lorsque l'on clique sur le x pour fermer la gui.
et la fonction qui suit est ce qui est exécutée lorsque la gui est "fermée" (en général, on met un exit dans la fonction pour quitter
le script)


Quant à GuiCtrlSetOnEvent, elle suit le même principe excepté qu'on l'utilise
pour définir une fonction lorsqu'on appuie sur un bouton, checkbox,bouton radio,etc...

Dans Scite, tu peux créer une GUI basique avec Koda Form Editor et voir un peu comment ça marche...


P.s. : Tu n'es pas du tout obligé d'apprendre cette méthode alternative pour faire fonctionner ton script. Seule la partie
avant les étoiles (***************) est nécessaire pour le bon fonctionnement de ton script.