Page 1 sur 1

[R] $GUI_EVENT_CLOSE ne fonctionne pas ...

Posté : sam. 22 août 2009 01:30
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 ?

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

Posté : sam. 22 août 2009 03:13
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.

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

Posté : sam. 22 août 2009 03:56
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.