Qt区分两个键盘? (一个实际上是RFID阅读器)

时间:2013-03-26 20:16:54

标签: qt rfid

我有一个简单的RFID阅读器,它实际上表现为键盘,并在结尾返回带有返回字符的读取值。

我希望我的应用程序只能侦听单个(不同的)键盘设备(我将以某种方式选择/区分),并为我获取读取值,而不是重点放在表单/应用程序上。

应用程序是用Qt C ++编写的

我想知道这是否可能以及如何?

2 个答案:

答案 0 :(得分:1)

不知道这是否有帮助,但我们在检测条形码扫描仪的输入方面遇到了类似的挑战。扫描仪只需键入"一些数字真的很快;一些扫描仪以控制字符结束它,但由于它不是通用的,我们甚至不能依赖它。

我注意到当条形码扫描器开始输入时会发出QEvent::KeyboardLayoutChange,但我不确定这是否适用于所有可能的情况 - 但您可能想检查一下。

我们最终安装了一个应用程序范围的事件过滤器(QApplication::installEventFilter),用于检查击键(QEvent::ShortcutOverrideQEvent::KeyPress)并根据连续数字序列,非常短的时间等标准进行检查间隔等决定它是条形码输入。它有明显的缺陷,但如果你需要一个非常通用的解决方案,你可能会对类似的东西感兴趣。此外,如果RFID输入总是返回一个控制字符,这可能会简化这种方法。

答案 1 :(得分:0)

在WinAPI的帮助下,这可以用于Windows操作系统。我从来没有使用过QT所以我不知道QT类中是否存在一些包装器用于此目的。 你应该使用原始输入。请查看此链接以获取快速参考: http://msdn.microsoft.com/en-us/library/windows/desktop/ms645536(v=vs.85).aspxUsing Raw Input部分下有示例

还要看一下这个项目http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard我理解它在C#上的写作,但它可能会有所帮助