Détecter quelle touche du clavier a été appuyée

Résolu
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016 - 11 janv. 2009 à 17:57
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016 - 13 janv. 2009 à 19:18
Bonsoir les développeurs. Voilà mon petit problème, je cherche à savoir quelle touche du clavier est appuyé, mais non pas à partir d'un KeyDown, KeyUp, KeyPress etc... Mais directement à partir du clavier où l'information sera récupérée dans un Timer qui tournera en boucle.
J'ai déjà pensé à la fonction Keyboard mais sans résultat concluant. Meme un simple appuie sur n'importe quelle touche.
Merci d'avance pour vos solutions.

DOVAX

6 réponses

ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
11 janv. 2009 à 22:37
Bonsoir, si je me trompe pas cette api devrait te convenir :
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

En esperant t'avoir un peu aidé.

<hr />www.e-fitz.com
Encore plus de sources et de tutoriels.
3
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
13 janv. 2009 à 01:50
Bonsoir
Hum msdn :

The GetAsyncKeyState function determines whether a key is up or down at the time the function is called, and whether the key was pressed after a previous call to GetAsyncKeyState

Return Value

If the function succeeds, the return value specifies whether the key was pressed since the last call to GetAsyncKeyState, and whether the key is currently up or down. If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState. However, you should not rely on this last behavior; for more information, see the Remarks.

Donc en gros cette fonction retourne si la touche vKey est appuyé ou relaché et si depuis le dernier appel la touche à était appuyé :
Exemple avec un timer nommé Timer1 :
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Timer1_Timer()
   
    If GetAsyncKeyState(vbKeyEscape) = -32767 Then      'Si la touche echape est appuyé
          MsgBox
"
Touche echap enfoncé
"
    End If
   
End Sub

Si cela ne correspond pas a ta demande alors precise un peu mieu.

<hr />www.e-fitz.com
Encore plus de sources et de tutoriels
3
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016
12 janv. 2009 à 19:11
Merci pour ta participation Ciberrique mais convertir est une chose secondaire pour moi, ce que je cherche en priorité c'est savoir quelle touche a été appuyée.


Bonne soirée


Benji2000



DOVAX
0
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016
13 janv. 2009 à 19:06
C'est presque çà, mais il n'y aurait pas un moyen plus simple, car si l'on souhaite faire çà pour toute les touches du clavier, on a pas fini ... :s
Cependant j'accepte cette réponse.
Et merci beaucoup.

Benji2000

DOVAX
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
13 janv. 2009 à 19:16
Bonsoir,

Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbKeyState As Byte) As Long

Cette fonction te copie dans un tableau (pbKeyState) l'etat de toute les touches du clavier au moment de l'appel.
En esperant que cela t'aidera.


<hr />

Encore plus de sources et de tutoriels.
0
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016
13 janv. 2009 à 19:18
Ok merci beaucoup je vais tout de suite tester et merci beaucoup pour ton aide précieuse.
Je te répondrais par message privé si j'ai des nouvelles. Bonne soirée

DOVAX
0
Rejoignez-nous