2008-10-20 10 views
1

J'ai deux claviers connectés à mon PC, est-il possible de savoir sur quel clavier une touche a été enfoncée dans n'importe quelle langue ou cadre?Identifier le clavier

Répondre

3

Pour Windows, vous pouvez enregistrer votre application pour recevoir des notifications raw input avec l'API RegisterRawInputDevices. Une fois que vous êtes enregistré, votre application va commencer à recevoir les messages WM_INPUT. Le lParam à ce message est un pointeur vers une structure RAWINPUT. Vous pouvez utiliser l'API GetRawInputData pour obtenir l'en-tête sous la forme RAWINPUTHEADER structure. Ensuite, vous pouvez utiliser le GetRawInputDeviceInfo sur la poignée de l'appareil à partir de l'en-tête pour extraire des informations pour le périphérique qui a généré l'entrée.

Je ne suis pas au courant d'autres façons d'obtenir le périphérique qui a généré l'entrée au clavier sur Windows.

Je n'ai également aucune idée de la façon de résoudre ce problème sur les autres systèmes d'exploitation.

+0

Merci! GetRawInputData est ci-dessus ci-dessous ou au même niveau avec DirectInput de DirectX? –

+0

Est-ce que quelqu'un sait la solution sur Linux pour cela? Ce serait intéressant à savoir. :) – Cheery

+0

Pour être honnête, je ne suis pas sûr de la façon dont les entrées brutes se rapportent à DirectInput. –

Questions connexes