[R] Reconnaitre une combinaison de touches.
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Reconnaitre une combinaison de touches.
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.
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.
Modifié en dernier par shaq le dim. 02 mars 2008 10:59, modifié 1 fois.
- moutelous
- Niveau 6
- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: reconnaitre une combinaison de touches.
Bonjour,
Essayez donc avec la fonction "HotKeySet"
A+
Essayez donc avec la fonction "HotKeySet"
A+
A+
Re: reconnaitre une combinaison de touches.
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:
donc F2 afiche une msgbox "bonjour" et echap stop le programme.
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
Re: reconnaitre une combinaison de touches.
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
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.
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.
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 ?
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 ?
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [...]reconnaitre une combinaison de touches.
Avez-vous lu dans l'aide la description de la fonction HotKeySet ?shaq a écrit :Il y a un truc que je comprend pas ...
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.
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é".
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é".
Re: [R] Reconnaitre une combinaison de touches.
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.
C'est pas la fonction que je ne comprend pas, mais l'utilisation de la boucle infinie.
Re: [R] Reconnaitre une combinaison de touches.
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.shaq a écrit :C'est pas la fonction que je ne comprend pas, mais l'utilisation de la boucle infinie.
Débutant, pas taper !
Re: [R] Reconnaitre une combinaison de touches.
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.
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.
Code : Tout sélectionner
MsgBox(0, "/// titre ////", "F2 = bonjour" & @lf & "F3 = salut")
Pour l'autre question je ne sais pas.
Débutant, pas taper !
- moutelous
- Niveau 6
- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [R] Reconnaitre une combinaison de touches.
C'est exactement ce qu'il se passe shaq (comme en C) :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.
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+
A+
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Reconnaitre une combinaison de touches.
J'ai bien lu le post et la suite, mais comme je l'ai dit la réponse à la question à été donnée.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.
Pour le reste, merci de lire les règles.
Et si le forum est là pour ça.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).
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.
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é".
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é".
Re: [R] Reconnaitre une combinaison de touches.
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
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
