[R] Reconnaitre une combinaison de touches.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

[R] Reconnaitre une combinaison de touches.

#1

Message 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.
Modifié en dernier par shaq le dim. 02 mars 2008 10:59, modifié 1 fois.
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: reconnaitre une combinaison de touches.

#2

Message par moutelous »

Bonjour,

Essayez donc avec la fonction "HotKeySet"

A+
A+
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: reconnaitre une combinaison de touches.

#3

Message 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.
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

Re: reconnaitre une combinaison de touches.

#4

Message 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 ;)
Avatar du membre
Vins83
Membre émérite
Membre émérite
Messages : 220
Enregistré le : mer. 25 juil. 2007 17:43
Status : Hors ligne

Re: reconnaitre une combinaison de touches.

#5

Message par Vins83 »

Pense au balise shaq pour demander de l'aide comme marqué ici http://www.autoitscript.fr/forum/viewto ... ?f=3&t=595
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

Re: [...]reconnaitre une combinaison de touches.

#6

Message 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 ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...]reconnaitre une combinaison de touches.

#7

Message 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.
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é".
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

Re: [R] Reconnaitre une combinaison de touches.

#8

Message 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.
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

Re: [R] Reconnaitre une combinaison de touches.

#9

Message 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.
Débutant, pas taper !
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

Re: [R] Reconnaitre une combinaison de touches.

#10

Message 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.
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

Re: [R] Reconnaitre une combinaison de touches.

#11

Message 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.
Débutant, pas taper !
Avatar du membre
moutelous
Niveau 6
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.

#12

Message 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+
A+
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Reconnaitre une combinaison de touches.

#13

Message 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.
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é".
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

Re: [R] Reconnaitre une combinaison de touches.

#14

Message 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 :)
Répondre