OVH Cloud OVH Cloud

Touche clavier

4 réponses
Avatar
Kiriasse
Bonjour,
Savez-vous comment, en VB, détecter la pression d'une touche du clavier afin
d'obtenir, en plus du caractère correspondant à la touche qui a été pressée,
un autre caractère ?
Exemple : si je presse la touche Z, je voudrais obtenir « AZ » ou « ZA ».
Un p'tit bout de code ? Avec l'API SendMessage, peut-être...
Merci de votre aide.
Kiriasse

4 réponses

Avatar
Jean-Marc
"Kiriasse" a écrit dans le message de
news:42d0da8c$0$3143$
Bonjour,
Savez-vous comment, en VB, détecter la pression d'une touche du clavier


afin
d'obtenir, en plus du caractère correspondant à la touche qui a été


pressée,
un autre caractère ?
Exemple : si je presse la touche Z, je voudrais obtenir « AZ » ou « ZA ».
Un p'tit bout de code ? Avec l'API SendMessage, peut-être...



Hello,

peux tu préciser ou donner un exemple d'utilisation?
Je ne saisis pas le sens de la question.

Entre autre, quel doit être le caractère supplémentaire? Quelle
doit être sa relation (si il y en a une) avec le caractère effectivement
saisi au clavier?

Que veux tu dire par "obtenir"? Obtenir comment? Par un retour de fonction?
Par la simulation du fait qu'un autre caractère a été saisi?

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
Kiriasse
Je ne saisis pas que vous ne saisissiez pas ;-)
Ouvrez NotePad. Tapez la touche A. Il apparaît évidemment « A » dans
NotePad.
Et je voudrais qu'il apparaisse « AZ » ou bien « ZA ».
Autrement dit je voudrais un bout de code VB qui permette :
1) Détection de la frappe de la touche A.
2) Annulation du message qui en résulte.
3) Envoi à la place du message qui simule les frappes consécutives de A et
de Z ou de Z et de A.

J'ai évidemment en tête autre chose que A et Z mais il vaut mieux raisonner
sur un exemple simple.

Kiriasse

== "Jean-Marc" a écrit dans le message de news:
42d0e4b7$0$16415$

Hello,

peux tu préciser ou donner un exemple d'utilisation?
Je ne saisis pas le sens de la question.




== > "Kiriasse"
Bonjour,
Savez-vous comment, en VB, détecter la pression d'une touche du clavier


afin
d'obtenir, en plus du caractère correspondant à la touche qui a été


pressée,
un autre caractère ?
Exemple : si je presse la touche Z, je voudrais obtenir « AZ » ou « ZA ».
Un p'tit bout de code ? Avec l'API SendMessage, peut-être...




Avatar
Picalausa François
Hello,

Un hook clavier pourrait être envisagé. Ceux ci doivent être écrits dans des
dll standard. Il y en a une de disponible ici:
http://www.mentalis.org/vbexamples/list.php?category=MISC

Je ne connais pas d'autre méthode permettant d'annuler la frappe au clavier.
Pour obtenir la seconde lettre, il suffira d'envoyer a la fenêtre ayant reçu
le message clavier une seconde série de messages claviers
WM_KEYDOWN/WM_KEYUP ou d'utiliser l'API d'émulation du clavier keybd_event
(95/NT 3.1) ou SendInput (98/NT 4 sp3/2k/XP)

--
Picalausa François

"Kiriasse" a écrit dans le message de news:
42d0f0ce$0$25056$
Je ne saisis pas que vous ne saisissiez pas ;-)
Ouvrez NotePad. Tapez la touche A. Il apparaît évidemment « A » dans
NotePad.
Et je voudrais qu'il apparaisse « AZ » ou bien « ZA ».
Autrement dit je voudrais un bout de code VB qui permette :
1) Détection de la frappe de la touche A.
2) Annulation du message qui en résulte.
3) Envoi à la place du message qui simule les frappes consécutives de A et
de Z ou de Z et de A.

J'ai évidemment en tête autre chose que A et Z mais il vaut mieux
raisonner sur un exemple simple.

Kiriasse

== > "Jean-Marc" a écrit dans le message de
news: 42d0e4b7$0$16415$

Hello,

peux tu préciser ou donner un exemple d'utilisation?
Je ne saisis pas le sens de la question.




== >> "Kiriasse"
Bonjour,
Savez-vous comment, en VB, détecter la pression d'une touche du clavier


afin
d'obtenir, en plus du caractère correspondant à la touche qui a été


pressée,
un autre caractère ?
Exemple : si je presse la touche Z, je voudrais obtenir « AZ » ou «
ZA ».
Un p'tit bout de code ? Avec l'API SendMessage, peut-être...







Avatar
Jean-Marc
Hello,

voici un exemple:
http://membres.lycos.fr/jeanmarcn/hook/hook.htm

La DLL n'est pas de moi, je l'ai juste retouchée.
Le programme VB est une adaptation d'un source trouvé je en sais plus ou.

Bref, ça fait ce que veux Kiriasse. Ca installe un Hook et après, c'est
trivial:
il suffit d'installer son gestionnaire et on fait ce qu'on veut derrière.
J'utilisais ceci pour faire une sort de Key-Text, pour ceux qui connaissent.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;

"Picalausa François" a écrit dans le message de
news:O$
Hello,

Un hook clavier pourrait être envisagé. Ceux ci doivent être écrits dans


des
dll standard. Il y en a une de disponible ici:
http://www.mentalis.org/vbexamples/list.php?category=MISC

Je ne connais pas d'autre méthode permettant d'annuler la frappe au


clavier.
Pour obtenir la seconde lettre, il suffira d'envoyer a la fenêtre ayant


reçu
le message clavier une seconde série de messages claviers
WM_KEYDOWN/WM_KEYUP ou d'utiliser l'API d'émulation du clavier keybd_event
(95/NT 3.1) ou SendInput (98/NT 4 sp3/2k/XP)

--
Picalausa François

"Kiriasse" a écrit dans le message de news:
42d0f0ce$0$25056$
> Je ne saisis pas que vous ne saisissiez pas ;-)
> Ouvrez NotePad. Tapez la touche A. Il apparaît évidemment « A » dans
> NotePad.
> Et je voudrais qu'il apparaisse « AZ » ou bien « ZA ».
> Autrement dit je voudrais un bout de code VB qui permette :
> 1) Détection de la frappe de la touche A.
> 2) Annulation du message qui en résulte.
> 3) Envoi à la place du message qui simule les frappes consécutives de A


et
> de Z ou de Z et de A.
>
> J'ai évidemment en tête autre chose que A et Z mais il vaut mieux
> raisonner sur un exemple simple.
>
> Kiriasse
>
> == > > "Jean-Marc" a écrit dans le message de
> news: 42d0e4b7$0$16415$
>>
>> Hello,
>>
>> peux tu préciser ou donner un exemple d'utilisation?
>> Je ne saisis pas le sens de la question.
>
>
> == > >> "Kiriasse"
>>> Bonjour,
>>> Savez-vous comment, en VB, détecter la pression d'une touche du


clavier
>> afin
>>> d'obtenir, en plus du caractère correspondant à la touche qui a été
>> pressée,
>>> un autre caractère ?
>>> Exemple : si je presse la touche Z, je voudrais obtenir « AZ » ou «
>>> ZA ».
>>> Un p'tit bout de code ? Avec l'API SendMessage, peut-être...
>