Je veux déterminer si un CTRL clé est GAUCHE CTRL ou droite CTRL touche lorsqu'elle est pressée. Comment puis-je faire ceci?Puis-je déterminer si une touche Ctrl est enfoncée Ctrl gauche ou Ctrl droite?
Répondre
Cependant, vous pouvez utiliser l'API Win32 GetAsyncKeyState
pour tester si des clés spécifiques sont actuellement désactivées, ce qui peut différencier les touches ctrl gauche et droite. (Si vous écrivez un jeu, cela fonctionne mieux pour vous que pour les gestionnaires de Keydown, car GetAsyncKeyState teste si la clé est "maintenant" plutôt que si elle a été pressée "à un moment donné dans le passé", ce qui donne considérablement meilleure réactivité).
Apparemment pas à partir de .NET, mais c'est possible à partir des API Win32.
- Les pistes de dénombrement System.Windows.Forms.Key gauche, à droite, et les boutons milieu de la souris, mais n'a qu'un seul drapeau pour les touches de contrôle, donc aucun moyen de déterminer gauche ou à droite pour les touches de commande. Le Console.ReadKey() method souffre du même problème.
- Vous pourriez être en mesure de faire quelque chose au niveau Win32. Le WM_KEYDOWN message suivra les clés étendues (droite Alt, contrôle à droite), donc Windows suit ces données ... il n'est tout simplement pas transmis à .NET. Vous êtes seul à l'écoute de l'API Win32 à partir de .NET. Je ne peux pas accéder à cette information à partir de .net.
Puisque vous écrivez un jeu, il pourrait être utile aussi utiliser DirectInput ... Winforms est pas vraiment destiné à da gaimez OMI ...
Device di_device = new Device(SystemGUID.Keyboard);
di_device.SetCooperativeMode(Nonexclusive|othercrap);
di_device.Acquire();
if(di_device.GetKeyboardState()[Keys.LControl])
{
blargh;
}
code écrit en SO zone de texte, non testé , quelque chose comme ca. Notez que vous devez inclure Microsoft.DirectX.DirectInput
Notez également que je ne veux pas dire que vous devriez init init un périphérique DirectInput chaque fois que vous avez besoin d'entrer. Créez l'appareil lorsque vous initiez votre jeu, éliminez-le lorsque votre programme se termine. DirectInput vous donne plus de contrôle ... Et les chances sont, vous allez vouloir l'utiliser. Bien sûr, à certains moments, vous devrez utiliser Winforms à la place [c'est-à-dire: pendant que votre programme est rendu, que se passe-t-il si l'utilisateur appuie assez rapidement sur un bouton? GKS ne vous le dira pas.]
- 1. Pouvez-vous distinguer entre la touche CTRL gauche et la touche CTRL droite en utilisant les codes-clés dans .keypress()?
- 2. jquery émuler la touche "ctrl + +"
- 3. C# capture Ctrl + Page touche
- 4. Comment attraper l'événement de touche Ctrl + C avec Qt lorsque Ctrl est relâché avant 'C'?
- 5. Détecter double touche Ctrl dans JS
- 6. Jquery UI draggable: cloner si Ctrl enfoncé
- 7. Ctrl-Delete dans JTextField
- 8. Delphi Obtenir 'Ctrl Tab' et 'Ctrl Shift Tab' dans l'application
- 9. PyQt4 et Ctrl C
- 10. Détection de la touche ctrl + tab
- 11. Comment capturer les touches CTRL + CTRL dans mon application Win32?
- 12. codes e.which pour CTRL + A et CTRL + E
- 13. Java awt.Robot: envoyer la clé avec la position par exemple. droite ou Ctrl droite
- 14. détecter ctrl + clic gauche application WinForms
- 15. Ctrl + Flèches: Quel algorithme ou standard?
- 16. Redéfinition ctrl = javascript
- 17. cartographie vim ctrl-;
- 18. Envoyer Ctrl + Jusqu'à une fenêtre
- 19. CommandBinding Ctrl + barre d'espace
- 20. Vim: Eclipse comme Ctrl-Backspace et Ctrl-Del
- 21. javascript pour nouvel onglet (CTRL + T), nouvelle fenêtre (CTRL + N)?
- 22. Disbale DataGridViewRow lorsque CTRL Unselect est pressée
- 23. Ctrl-Espace dans Eclipse sans appuyer sur Ctrl-Espace
- 24. Visual Studio: CTRL + M Ctrl + V (. Net MVC)
- 25. Ctrl-o dans vimpulse?
- 26. capture CTRL + A, CTRL + touches/C dans les événements flex
- 27. jsch - envoyer des touches spéciales (CTRL-C, CTRL-D, etc.)
- 28. VS 2008 - Comportement ctrl-tab
- 29. Mappage Vim ctrl-k
- 30. Désactiver Eclipse ctrl-click
Qu'avez-vous eu jusqu'à présent? En outre, une raison spécifique pour laquelle vous voulez différencier les deux? – Gishu
Pouvez-vous donner des détails supplémentaires? – jfs
Puisque personne d'autre n'a demandé ... pourquoi voudriez-vous faire la différence entre les deux? – jrista