一台电脑接了两个USB键盘,如何区分输入来源?

向东流 2014-01-09 04:31:42
接了2个USB键盘,键盘1和键盘2,用VC有没有办法区分输入来自于哪个键盘?
进一步,能不能屏蔽键盘2的输入?
当然不允许拔掉键盘。
...全文
2000 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
向东流 2014-01-14
  • 打赏
  • 举报
回复
谢谢大家的解决方案,暂时先不折腾了。
蒋晟 2014-01-14
  • 打赏
  • 举报
回复
这样的话,换个读卡器吧,高端的有开发接口,可以通知你扫描到了什么,但是需要安装厂家的驱动。
向东流 2014-01-13
  • 打赏
  • 举报
回复
谢谢楼上,我现在能用(raw input)结合Hook做到区分输入信息是来自那个设备,但是没办法屏蔽。

如图,表面卡号这个输入框是由读卡器读入的,但是读的时候输入焦点一定要在上面,如果焦点在车号,备注上面就,读卡器读的卡号就输入到车号或者备注上面了。我想达到不管输入焦点在那,甚至没有输入焦点,只要读卡器一有读卡,读的卡号就直接写入表面卡号,其他任何输入框都不显示。
  • 打赏
  • 举报
回复
我用原始输入(raw input)做过多鼠标输入的区分,相信多键盘也是可以区分的,楼主试试吧
shen_wei 2014-01-13
  • 打赏
  • 举报
回复
根据键盘的VID 和PID,就能区分了。。
向东流 2014-01-11
  • 打赏
  • 举报
回复
需要涉及ring0层的话就不折腾了。 需求是这样的: 一个键盘和一个ID读卡器都接在电脑上,ID读卡器是无驱动的那种,被识别成键盘,HID设备。程序输入界面有一个输入框为ID卡号,想达到的目的是无论输入焦点在什么上面,只要一在读卡器上刷卡,卡号就自动写到ID卡号这个输入框,而不写入其他的编辑框。 谢谢各位啦!~~看看有什么好的解决方案。
蒋晟 2014-01-11
  • 打赏
  • 举报
回复
可以在驱动层做,但是很难想象用户会为这个需求去安装一个键盘驱动。说服用户拔掉第二个键盘或许更容易些。
xiaohuh421 2014-01-11
  • 打赏
  • 举报
回复
一个WM_KEYDOWN消息就那么点信息, 哪发来的, 无法区分. 只有能与硬件打交道的可以区分. 也就是ring0层程序. 难道你楼主要区分这两个设备来作达到什么目的呢, 也许有其它解决办法.
向东流 2014-01-09
  • 打赏
  • 举报
回复
谢谢,那有没有办法实现程序只接受键盘1的输入,不接受键盘2的输入,就是把键盘2的所有输入都过滤掉。
蒋晟 2014-01-09
  • 打赏
  • 举报
回复
要在你的程序里区分的话,需要调用RegisterRawInputDevices,这样操作系统会把输入消息直接以WM_INPUT的形式给你,你可以用GetRawInputData获得消息的来源设备句柄。但是这也会造成你的程序接收不到正常的鼠标键盘消息。

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧