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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Kikoolol
Niveau 5
Niveau 5
Messages : 100
Enregistré le : mer. 05 mars 2008 18:18
Status : Hors ligne

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

#1

Message 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 !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11816
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message par Tlem »

Dans votre boucle While, c'est Select ou Switch mais pas les deux.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
guitarist
Niveau 6
Niveau 6
Messages : 235
Enregistré le : mar. 02 déc. 2008 16:59
Status : Hors ligne

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

#3

Message 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.
Kikoolol
Niveau 5
Niveau 5
Messages : 100
Enregistré le : mer. 05 mars 2008 18:18
Status : Hors ligne

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

#4

Message 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 :(
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#5

Message 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
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Kikoolol
Niveau 5
Niveau 5
Messages : 100
Enregistré le : mer. 05 mars 2008 18:18
Status : Hors ligne

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

#6

Message 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 ?
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#7

Message 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.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre