c++ - 如何在 Linux 应用程序中独占使用附加键盘

标签 c++ linux keyboard keyboard-events libusb

我的无人值守应用程序需要响应击键,但前提是系统连接了特定类型的键盘。它将是一个数字键盘,通过 USB 连接。

我已经找到了如何使用 libusb/libudev 检测键盘的连接/断开。从任何 HID 设备捕获击键似乎也不是那么难,尽管它需要 root 权限,我想避免...

困难在于我不希望 Linux 系统以正常方式“使用”该数字键盘,即不在登录 tty 上接受来自它的输入。我也不想完全禁用登录,使用“常规”键盘仍然可以登录。我不知道该怎么做。任何建议表示赞赏。

最佳答案

我认为您必须让额外的键盘充当不同类型的 HID 设备,也许是完全不同类型的设备。然后您的应用程序可以打开这个特殊设备(它不会用于普通键盘输入,因为它不会显示为普通键盘)并接受来自它的输入。

我不太了解 HID 设备,只是它们似乎涵盖了非常广泛的功能(例如字节或位宽数字 I/O),因此应该可以找到合适的设备类.

如果您无法更改数字小键盘向 USB 软件描述自身的方式,那么您将无济于事,如果它说“我是键盘”,那么它将被视为键盘.

关于c++ - 如何在 Linux 应用程序中独占使用附加键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21864647/

相关文章:

c++ - 随机变量名,可能吗?

c++ - 在 C++ 中管理二进制数据的缓冲区

c++ - 为什么 C++ 允许对派生类方法进行更严格的访问?

c++ - 如何将填充零添加到写入 ofstream 的数字?

c# - 如何在不引用 X11 的情况下以单声道绘制 png 图像

linux - 创建一个类似 Wacom 的 Linux uinput 设备,用于使用触摸屏和笔

webview - iOS 7 web View 文本字段焦点在键盘出现时发生变化

android - Android 应用程序如何加载键盘?

linux下的c++ flash

c# - 形成 KeyUp 和 KeyDown 事件来改变变量