Page 1 sur 1

[R] Sortie du programme à tout moment ?

Posté : mer. 21 mars 2012 14:31
par blacksoul305
Salut les gens,

je poursuis toujours et toujours mon code volumineux et vient le problème suivant : la sortie. Vous allez me dire, un HotKeySet() est c'est terminé, mais le truc c'est que je veux qu'à la sortie de mon programme, on enregistre quelques en valeurs en guise d'historique, et vu que les fonctions d'HotKeySet ne peuvent avoir de paramètres, c'est loupé ! Là vous allez me dire qu'un _IsPressed() fera l'affaire mais là viens le problème de ma très très longue boucle. Le programme a pour tâche d'exécuter une boucle infinie avec beaucoup de choses à l'intérieur, environ 300 lignes à traiter durant l'exécution du programme, et si jamais je cale un _IsPressed au début, l'utilisateur quittera la programme grâce au hasard.
Maintenant je vois personnellement 2 solutions :

- Soit je met entre chaque commandes de ma boucle un _IsPressed ce qui va être relativement long et ralentira de beaucoup mon prog
- Soit vous avez une idée qui pourrait m'arranger.

J'ai pensé au Tray, je vais voir ce qu'il en est, j'ai essayé une fois et j'me suis mangé. Mis à part ça je vois pas du tout.

En vous remerciant !

Re: [..] Sortie du programme à tout moment ?

Posté : mer. 21 mars 2012 14:49
par Iste
Je ne vois pas le problème avec HotKeySet()

Vous pouvez etre plus précis ?

Re: [..] Sortie du programme à tout moment ?

Posté : mer. 21 mars 2012 14:59
par blacksoul305
Oui bien sûr.

Je cite la phrase d'AutoIt Help :
AutoiIt Help a écrit :The called function can not be given parameters. They will be ignored.
En clair je ne peux donner de paramètres auquel cas ils seront ignorés. Or j'ai besoin de mettre des paramètres puisque je veux, pour historique, écrire dans un fichier .ini. La fonction devra récupérer une variable à l'extérieur qui servira de compteur ; si c'est toujours pas clair, voilà en AutoIt.

Code : Tout sélectionner

HotKeySet("{ESC}","_Exit")

$histo = 0

While 1
"tatatatatatat" ; avec des histo +=1 dans la boucle
WEnd

Func _Exit($histo) ; appelle d'une variable extérieure
IniWrite("historique.ini","section","clef",$histo) ;écriture de la valeur
Exit
Endfunc
Mais comme dans la phrase citée, on ne peut donner de paramètres à HotKeySet().
Je suis cependant entrain de travailler sur le Tray et je pense avoir compris comment ça marchait mais par contre, une question se pose. Il semblerait que le Tray soit une sorte GUI à part, je place où la boucle qui gère le Tray, au début ?

Merci de votre réponse rapide !

Re: [..] Sortie du programme à tout moment ?

Posté : mer. 21 mars 2012 15:10
par Iste
Pour le tray, voir les exemples de la doc, ils seront plus parlant que moi.

Mais sinon, en effet on ne peut passer de paramètres, mais dans votre exemple cela n'est pas utile car $histo y est accessible.

En gros, utiliser quelque variables globales au lieu des paramètres.

Je ne peux pas vous en dire plus, pour la suite tout dépend de votre code.

Re: [..] Sortie du programme à tout moment ?

Posté : mer. 21 mars 2012 15:21
par blacksoul305
Iste a écrit :Pour le tray, voir les exemples de la doc, ils seront plus parlant que moi.
En gros, utiliser quelque variables globales au lieu des paramètres.
Oh, bien vu ! Mince, je savais pas que c'était possible, ça marche très bien pour moi je vous remercie. Désolé alors pour la question bête. Je mes le post en résolu et posterai sûrement à l'avenir la réponse à ma question à propos du Tray !

Merci encore, bonne après-midi !