C# 多键盘和低级挂钩
我有一个系统,我有多个键盘,我真的需要知道键盘笔划是来自哪个键盘。要解释设置,请执行以下操作:C# 多键盘和低级挂钩,c#,winapi,keyboard,hardware,hook,C#,Winapi,Keyboard,Hardware,Hook,我有一个系统,我有多个键盘,我真的需要知道键盘笔划是来自哪个键盘。要解释设置,请执行以下操作: 我有一台普通的电脑和USB键盘 我有一个外置VGA屏幕和一些硬键 硬键映射为标准USB键盘,发送有限数量的键代码(F1、F2、Return、+和-) 我有一个低级钩子(在C#中,但实际上调用了Win32功能),它能够处理输入,即使在我的应用程序没有集中的情况下 问题在于,当使用普通键盘时,外部屏幕上正在驱动的应用程序会拾取一些映射的按键代码。外部屏幕发送并用于确认的按键之一是VK_RETURN。除非我
我如何知道哪个键盘负责按键?没有办法做到这一点。Windows为您抽象了这一点。如前所述,您需要编写/修改设备驱动程序。是的,我的错误得到纠正,每天都在学习新的东西 这是我试图弥补的:):
- 使用::RegisterRarWinPutDevices()注册要用于原始输入的设备(两个键盘)
- 您可以从GetRawInputDeviceList()获取这些设备
- 注册设备后,您将开始收到WM_输入消息
- WM_输入消息的LPRAM包含一个RAW键盘结构,您可以使用该结构确定输入来自何处的键盘,加上虚拟键码和消息类型(WM_KEYDOWN、WM_keydup,…)
- 因此,您可以设置最后一条消息来自何处的标志,然后将其发送到常规键盘输入处理程序