gpt4 book ai didi

c - 如何捕获输入设备并防止其默认行为

转载 作者:行者123 更新时间:2023-11-30 19:24:49 31 4
gpt4 key购买 nike

我有一个 RFID 标签阅读器。但它的工作原理类似于 HID 设备(如键盘)。当扫描标签时,它会将击键发送到计算机。当我打开记事本并扫描标签时 - 它一次输入一位数字的 ID。有没有办法创建一个程序来监听该设备(或该端口)并捕获(拦截)所有输入。这样击键就不会出现在我的系统上,但我可以在设备发送和输入时分配自己的事件。我不希望它出现在记事本上。

我意识到,根据所使用的操作系统和编程语言,实现可能会有所不同。理想情况下,我希望在 Windows 和 Linux 上都能实现此功能。我更喜欢使用 Node.js 之类的东西,但我认为 C 也不错。

如果有任何提示或为我指明正确的方向,我将不胜感激。

enter image description here

最佳答案

您可以打开原始输入设备进行读取(对于 Linux 来说基本上是带有参数 EVIOCGRABioctl ,对于 Windows 来说是 RegisterRawInputDevices() ,如 here 所讨论的和 here )。然而,这些机制相当 different for Windows and Linux ,因此您最终将实现所有低级逻辑两次。

还应该可以从标准输入读取输入数据流,就像从键盘读取输入一样(例如 scanf()fgets() 在 C 中),具有一些识别数据集(= 标签 ID)何时完成的逻辑 - 例如,读取器设备可能使用换行符 '\n' 或空字符 终止输入'\0'

您可能应该在单独的线程中执行此操作,并具有某种生产者-消费者机制或事件模型来与主应用程序进行通信。

关于c - 如何捕获输入设备并防止其默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59836366/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com