2016-06-15 3 views
-2

Comment je peux déterminer quelle touche est pressée sur le clavier en C++ en utilisant WINAPI?Comment puis-je déterminer quelle touche est pressée sur le clavier? C++

J'essaie d'utiliser GetAsyncKeyState, mais cela fonctionne juste pour exactement une clé, et je dois choisir lequel, mais j'ai besoin d'obtenir le code pour qu'il soit envoyé sur tcp.

+1

Si vous lisez la page de manuel 'GetAsyncKeyState', vous la verrez [vous relie à GetKeyboardState] (https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms646299 (v = vs. 85) .aspx) –

+0

Dépend de si vous êtes dans une application de console ou une application GUI –

Répondre

1

Boucle sur chaque personnage et essayer chacun:

for (char i = 32; i < 127; i++) 
    if (GetAsyncKeyState (i)) 
     /* Do whatever you want with that character */; 

Dans l'exemple boucle que je viens de « » à « ~ », modifier comme vous le souhaitez.

+1

GetAsyncKeyState, avec une majuscule 'G'. Mais vous n'avez pas besoin de l'appeler dans une boucle de toute façon, car il y a [GetKeyboardState] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646299.aspx) qui retourne les états clés pour tout le clavier. – IInspectable

+0

@IInspectable Oui, mais 'GetKeyboardState' correspond à' GetKeyState', qui a une sémantique différente de 'GetAsyncKeyState'. Quant à la sémantique dont le demandeur a besoin, je ne pense pas que nous puissions être sûrs. –