2011-03-11 4 views
0

Pourquoi est-ce que je reçois plus de 1 (quelques centaines) de touches sur une seule presse lors de l'utilisation de GetAsyncKeyState. Il imprime une centaine d'une même clé pendant que je viens de la presser une fois. Merci,GetAsyncKeyState et quelques problèmes?

+0

Vous Looping tout en appelant GetAsyncKeyState? Gardez à l'esprit que l'ordinateur peut parfaitement vérifier l'état de la clé quelques centaines de fois dans ce qu'il vous faut pour libérer la clé. – slezica

+0

quoi de mieux que je peux faire ici? Je veux dire que j'ai essayé de mettre le sommeil (100) mais que faire si certains ordinateurs sont plus lents? alors il y aura des caractères abandonnés. – Kourosh

Répondre

1

GetAsyncKeyState vous indique l'état du clavier, si une clé est vers le bas/haut, pas si elle a été pressée depuis le dernier appel. Si vous l'appelez dans une boucle, vous obtiendrez "key is down" aussi longtemps que vous gardez la touche enfoncée - et cette boucle s'exécute beaucoup plus vite que vous ne pouvez bouger vos doigts.

Si vous voulez le clavier événements gérer WM_KEYDOWN et WM_KEYUP.

Si vous voulez un raccourci clavier global, utilisez RegisterHotKey

+0

hmmm ... Vous l'avez, suggérez-vous une solution? – Kourosh

+0

Quel est le problème que vous essayez de résoudre? – Erik

+0

J'essaie de mettre un raccourci pour mon application afin que quand je vais dans le bac je peux le rappeler alors qu'il n'est pas focalisé. – Kourosh

Questions connexes