是的,我还没有编写任何代码,但这是我的计划:
- 用户扫描带有唯一 ID 的 RFID 卡
- ID 像键盘输入一样读取
- ID 与 DB/平面文件相关,并检索相关信息
现在这相当容易,我可以做到这一点,我只是想知道如何防止从我的键盘读取任何其他输入,而不仅仅是从连接了 RFID 读取器(键盘楔形)的 USB 端口读取。
任何帮助将不胜感激。
谢谢,
缺口
您可以使用RawInput来区分来自多个设备的输入。它允许检索设备 VendorID 和 ProductID,这对于不同的设备是唯一的,但对于相同的设备(例如两个相同的键盘)来说,它是相同的,尽管它还提供设备 GUID(在系统中,它对于我理解的系统是唯一的或类似的东西这)和其他一些数据,即使是来自两个相同的设备也有助于区分输入。
您可以检索 RFID 扫描仪的 VID 和 PID 并将所有输入消息与它进行比较,仅从您的设备中捕获符号。
另外,我想您的 RFID 扫描仪输入数据的速度非常快,因此您只需测量用于输入整个符号笔划的时间,并将 RFID 扫描仪与键盘区分开来,而无需知道它的 VID 和 PID 对。
要删除不需要的输入,您可以使用窗口挂钩。
差点忘了,微软为 POS 设备开发了一些框架,但它是针对 .NET 的,它被称为POS for .NET。也许它会有所帮助,就我而言,我无法使用它。
PS:我目前正在自己解决这个难题,但是使用条形码扫描仪(在不知道 VID&PID 的情况下读取条形码扫描仪输入)
我们在我工作的公司的 RFID 阅读器上也遇到了同样的问题,我们为它建立了一个库来获取 rfid 卡 ID。现在该库已开源(LGPL 许可),我相信它可以被视为您问题的答案。它使用 Ivan0x32 建议的 RawInput 并在当前活动控制台上启动钩子进程并在需要时进行模拟(因为会话 0 隔离,以防您正在开发 Windows 服务)。转到LibLogicalAccess项目并寻找“键盘”阅读器。