Page 1 sur 1
[R] Reconnaitre une combinaison de touches.
Posté : sam. 01 mars 2008 17:45
par shaq
Bonjour,
J'ai décidé de me remettre à l'autoit mais déjà que j'avais pas un très bon niveau, alors là en plus la reprise est dure.
Je voudrai faire un programme en théorie simple : je voudrais un programme qui tourne en boucle et que quand j'appuie sur la touche F2 admettons ça m'écrive le mot "bonjour".
Moi naïvement j'avais fait en gros :
if (send("{F2}") = 1) then
send("bonjour")
endif
Mais bien évidemment au lieu de comparer ça m'exécute F2.
Re: reconnaitre une combinaison de touches.
Posté : sam. 01 mars 2008 19:08
par moutelous
Bonjour,
Essayez donc avec la fonction "HotKeySet"
A+
Re: reconnaitre une combinaison de touches.
Posté : sam. 01 mars 2008 19:14
par tutu
Bonjour, j'ai commencé avec Autoit depuis hier et je viens de m'inscrire, pour une comparaison d'egalité il faut utilisé ==. Sinon pour ton code, je pense avoir trouvé ce qu'il faut utilisé:HotKeySet .
voici ce que j'ai trouver avec l'aide:
Code : Tout sélectionner
HotKeySet("{F2}", "Envoyer") ;quand la touche F2 est enfoncer execute la fonction Envoyer
HotKeySet("{ESC}", "Terminer");quand la touche echap est enfoncer execute la fonction Terminer
While 1; je ne comprend pas pourquoi il n'y a pas de variable car quest ce qui est egal à1?
Sleep(100);
WEnd
Func envoyer(); ce que fait la fonction envoyer
msgbox(0,"titre fenetre","Bonjour ",0) ; envoie un messagebox bonjour
EndFunc; fin de la fonction
Func Terminer();ce que fait la fonction terminer
Exit 0 ;arrete la boucle while et donc le programme, je compren pas ce qui prend la valeur 0 non plus xD.
EndFunc; fin de la fonction
donc F2 afiche une msgbox "bonjour" et echap stop le programme.
Re: reconnaitre une combinaison de touches.
Posté : sam. 01 mars 2008 19:21
par shaq
Merci les gars pour votre aide.
Ne fermez pas encore ce poste car je n'ai pas le temps de tester, et en plus je vais certainement avoir d'autres questions

Re: reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 10:32
par Vins83
Pense au balise shaq pour demander de l'aide comme marqué ici
http://www.autoitscript.fr/forum/viewto ... ?f=3&t=595
Re: [...]reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 11:01
par shaq
Il y a un truc que je comprend pas ...
pourquoi les fonctions ne sont pas à l'intérieur de la boucle infinie ?? Normalement en C par exemple ce programme fera juste une boucle infinie et il faudrait killer le programme manuellement.
Comment est-ce que les fonctions sont quand même prises en compte alors qu'il y a une boucle infinie juste avant ?
Re: [...]reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 11:50
par Tlem
shaq a écrit :Il y a un truc que je comprend pas ...
Avez-vous lu dans l'aide la description de la fonction
HotKeySet ?
Vous semblez connaître le langage C, donc la lecture de l'aide devrait répondre à votre interrogation.
PS: Ce post est résolu, puisque la réponse à la question à été apportée.
Re: [R] Reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 16:58
par shaq
Tu n'as même pas pris la peine de lire la suite, c'est à dire ce que je ne comprenai pas ...
C'est pas la fonction que je ne comprend pas, mais l'utilisation de la boucle infinie.
Re: [R] Reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 17:15
par eln
shaq a écrit :C'est pas la fonction que je ne comprend pas, mais l'utilisation de la boucle infinie.
La boucle infinie n'est pas obligatoire mais évite que ton script se déroule d'une façon éclair. Elle pourrait être remplacée par un Sleep mais le Sleep a une durée de vie déterminée.
Re: [R] Reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 17:29
par shaq
Non en fait moi ce que je comprenais pas, c'est que normalement dans un programme (en C par exemple) si tu met une boucle infinie comme c'est fait dans ce script, ben ça ferait bloquer le programme et la suite ne se ferait pas tant que tu ne casse pas la boucle. Tandis que là on dirait que la boucle infinie et les fonctions s'exécute en parallèle et non à la suite.
J'ai une autre question (et c'est pour celà que je ne veux pas ferme mon poste car j'ai une multitude de questions et je ne veux pas créer un poste juste pour ça). Dans un msgbox par exemple, comment faire pour faire un retour à la ligne ?
Du type :
/// titre ////
F2 = bonjour
F3 = salut
[OK]
"F2 = bonjour
F3 = salut" Etant le corp du message.
Re: [R] Reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 17:40
par eln
Code : Tout sélectionner
MsgBox(0, "/// titre ////", "F2 = bonjour" & @lf & "F3 = salut")
par exemple si j'ai bien compris.
Pour l'autre question je ne sais pas.
Re: [R] Reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 19:34
par moutelous
shaq a écrit :
Non en fait moi ce que je comprenais pas, c'est que normalement dans un programme (en C par exemple) si tu met une boucle infinie comme c'est fait dans ce script, ben ça ferait bloquer le programme et la suite ne se ferait pas tant que tu ne casse pas la boucle. Tandis que là on dirait que la boucle infinie et les fonctions s'exécute en parallèle et non à la suite.
C'est exactement ce qu'il se passe shaq (comme en C) :
Si nous reprenons l'exemple ci dessus, lorsque tu executes le script, il est lu ligne par ligne et est les commandes sont chargées en mémoire pour être éxécutées immédiatement ou sur commande utilisateur, arrivé au niveau de la boucle le script est mis en attente ainsi si l'utilisateur appui sur la touche F2 l'exécution prévue est effectuée car déjà chargée en mémoire.
Si dans le même exemple tu mets la boucle d'attente en tête de script, le script ne fera qu'attendre car les autres commandes n'auront pas été chargées en mémoire au préalable ....donc un appui sur F2 par exemple n'aura aucune conséquence.
en espérant avoir été clair ...
A+
Re: [R] Reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 21:50
par Tlem
shaq a écrit :Tu n'as même pas pris la peine de lire la suite, c'est à dire ce que je ne comprenai pas ...
C'est pas la fonction que je ne comprend pas, mais l'utilisation de la boucle infinie.
J'ai bien lu le post et la suite, mais comme je l'ai dit la réponse à la question à été donnée.
Pour le reste, merci de lire les règles.
shaq a écrit :J'ai une autre question (et c'est pour celà que je ne veux pas ferme mon poste car j'ai une multitude de questions et je ne veux pas créer un poste juste pour ça).
Et si le forum est là pour ça.
Si on met plusieurs questions par post ça va vite être la zone, et on va ce retrouvé avec des posts de 12Km de long.
Donc
une question = un post.
Re: [R] Reconnaitre une combinaison de touches.
Posté : dim. 02 mars 2008 22:09
par shaq
Merci bien de vos réponses.
Je me souvenai pas que en C c'était pareil faut dire que ça fait très longtemps que je n'en ai plus fait.
Donc en fait pour sauter une ligne c'est : & @lf &
C'est pas forcément très pratique mais bon
