Je voudrais récupérer l'état des clés Ctrl
dans un endroit où je n'ai pas de formulaire.WinForms Récupérer l'état du clavier sans formulaire/UserControl
Normalement, pour obtenir un état de clé, j'utiliserais les événements Control_KeyDown/KeyUp. Cependant, le code qui doit savoir si vous appuyez sur Ctrl est en dehors de toute forme. Il y a un formulaire affiché, mais le code est supposé pas pour dépendre de cette forme mais trouver l'état de clé tout seul.
Sûrement il y a un moyen de le faire, seulement je n'arrive pas à le trouver sur google. Notez que bien que le code ne dispose pas d'un formulaire disponible, il s'agit toujours d'une application WinForms, donc peut-être que le framework fournit une classe/objet pour que j'atteigne cet objectif.
Contexte:
Au cours de la phase de démarrage de l'application, je veux un pas de se comporter differntly si la touche Ctrl est enfoncée dans ce moment-là. La phase de démarrage affiche un écran de démarrage, mais le code pour le démarrage n'est pas conscient de cela. Au lieu de cela, il signale la progression vers un rappel, et ce rappel met à jour l'écran de démarrage. Si j'utilise l'écran de démarrage pour récupérer l'événement KeyDown, je fais dépendre le code de démarrage de cet écran de démarrage, qui introduit une dépendance circulaire. Je veux garder la liberté d'enlever l'écran de démarrage et le remplacer par quelque chose de différent.
Est-ce que cela signifie que votre application a besoin de savoir si Ctrl est cliqué quel que soit l'application est l'actif un? Donc, si vous travaillez dans un programme et cliquez sur Ctrl, vous voulez que votre programme l'attrape? Dans ce cas, c'est un crochet de clavier que vous recherchez. Si vous confirmez cela, je peux vous donner quelques indications. –
@ Øyvind: Il n'est pas nécessaire de remarquer Ctrl si une autre application est en face. En fait, il serait encore mieux si Ctrl n'est * pas * enregistré dans ce cas (voir ma mise à jour sur l'arrière-plan de ma question). – chiccodoro