J'ai un système où j'ai plusieurs claviers et j'ai vraiment besoin de savoir de quel clavier provient le coup de clé. Pour expliquer la mise en place:Claviers multiples et crochets de bas niveau
- J'ai un clavier PC et USB normale
- J'ai un écran VGA externe avec quelques touches non-
- Les touches dures sont mappées comme un clavier USB standard, l'envoi d'un nombre limité de codes-clés (F1, F2, Return, + et -)
J'ai un hook de bas niveau (en C# mais qui fait appel à la fonctionnalité Win32) qui est capable de gérer l'entrée même quand mon application n'est pas ciblée.
Le problème est que lors de l'utilisation du clavier normal, certains des codes-clés mappés lors de la prise en charge par l'application sont pilotés sur l'écran externe. L'une des touches appuyées par l'écran externe et utilisée pour la confirmation est VK_RETURN. À moins que je puisse identifier le «périphérique» et filtrer dessus, l'utilisateur pourrait effectuer des actions et les confirmer sur un écran qu'il ne regarde même pas. Comment puis-je savoir quel clavier était responsable de l'appui sur la touche?
J'ai répondu à cette question ici: [Comment détecter le périphérique d'entrée si la souris et le touchpad sont activés] (http://stackoverflow.com/a/8804862/1000282). La réponse utilise une bibliothèque c et les pilotes que j'ai créés. –
Pas strictement une réponse à ma question. La réponse marquée comme correcte a bien fonctionné pendant plusieurs années. –
@ ray-haves Pouvez-vous confirmer si vous êtes en mesure d'empêcher l'entrée de _making_ pour d'autres applications, même après que vous l'ayez filtré? C'est-à-dire, une fois qu'une frappe est filtrée à travers une entrée brute, êtes-vous capable de l'empêcher d'être traitée par le reste du système d'exploitation? –