[R] $GUI_EVENT_CLOSE ne fonctionne pas ...

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

[R] $GUI_EVENT_CLOSE ne fonctionne pas ...

#1

Message par SagePourpre »

Bonjour.



J'ai réalisé un petit script de 200 lignes intitulé Bob 1.0


Bob 1.0 est une interface de commandes vocales qui réagit aux commandes donnée vocalement ou en tapant dans le champs
texte manuellement une commande reconnue.


Mon problème est ceci : La fonction associée à $GUI_EVENT_CLOSE ne s'exécute pas. ( GuiOnEventMode est bien à 1 dans les options )

Pourtant, en regardant l'icône de la barre des tâches (avec TrayIconDebug mis à 1 ), le script se trouve bien à la bonne place, c'est à dire dans la
boucle principale du script .



Le script est entièrement fonctionnel et je pourrais aisément contourner le problème en ajoutant une commande vocale/textuelle pour quitter le
script étant donné que je sais le script réactif aux commandes. Cependant, je ne souhaite pas contourner le problème, je souhaite comprendre
ce qui peut le poser. Apparemment, il n'y a aucune raison pour que cela arrive, puisque comme mentionné plus haut, Bob 1.0 est bien
dans sa boucle principale et n'est pas occupé ailleurs lorsque je tente de quitter l'application.



Comme le script fait 200 lignes et nécessite un fichier *.ini, je le joins ci-bas
_codes.zip
(1.7 Kio) Téléchargé 98 fois
Sinon, si vous voulez seulement y jeter un coup d'oeil, voici le lien sur PasteBin

Le script est bien à la ligne 55 (si vous regardez sur pastebin) lorsque j'essaie de fermer l'application mais elle ne réagit pas.
Une idée ?
Modifié en dernier par SagePourpre le sam. 22 août 2009 03:57, modifié 1 fois.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...] $GUI_EVENT_CLOSE ne fonctionne pas ...

#2

Message par orax »

C'est bizarre, chez moi ça a l'air de marcher : la fonction "quit" est bien exécutée quand j'appuie sur la touche "Echap", et le script se ferme. Ou alors j'ai dû mal comprendre votre message.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [...] $GUI_EVENT_CLOSE ne fonctionne pas ...

#3

Message par SagePourpre »

orax a écrit :C'est bizarre, chez moi ça a l'air de marcher : la fonction "quit" est bien exécutée quand j'appuie sur la touche "Echap", et le script se ferme. Ou alors j'ai dû mal comprendre votre message.

Effectivement, en appuyant sur "Echap" en étant dans l'input, ça fonctionne bien.

Par contre, en tentant de fermer la gui avec le bouton "fermer" par défaut en haut à droite, la gui ne se ferme pas.

Ta réponse m'a cependant permis de trouver le problème.
Comme la fonction quit se déclenche dans l'input après un appui sur "Echap" mais pas le bouton, je suis retourné voir du côté de mon GuiCreate.



Exemple de Gui "défectueuse"

Code : Tout sélectionner

#include<GuiConstantsEx.au3>
Opt("GuiOnEventMode",1)
GUICreate("",Default,Default,Default,Default,"")
GUISetOnEvent($GUI_EVENT_CLOSE,"quit")
GUISetState()

While 1
    Sleep(100)
WEnd


Func quit()
    Exit
EndFunc
 
C'est le "" à la fin de GuiCreate qui causait le problème.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre