如何在 Linux 应用程序中专门使用其他键盘
How to use additional keyboard exclusively in a Linux application
我的无人参与应用程序需要响应击键,但仅当特定类型的键盘连接到系统时。它将是一个数字键盘,通过USB连接。
我已经找到了如何使用libusb/libudev检测键盘的连接/断开连接。似乎从任何 HID 设备捕获击键也不难,尽管它需要 root 权限,我想避免......
困难在于我不希望 Linux 系统以正常方式"使用"该数字键盘,即不接受登录 tty 上的输入。我也不想完全禁用登录,应该仍然可以使用"常规"键盘登录。我不知道该怎么做。任何建议不胜感激。
我认为您将不得不使额外的键盘充当不同类型的HID设备,也许完全是不同类型的设备。然后,应用程序可以打开此特殊设备(不会用于普通键盘输入,因为它不显示为普通键盘)并接受来自它的输入。
我对 HID 设备了解不多,除了它们似乎涵盖了非常广泛的功能(例如字节或位宽数字 I/O),因此应该可以找到合适的设备类。
如果您没有任何方法可以更改数字键盘向USB软件描述自己的方式,那么您将一事无成,如果它说"我是键盘",那么它将被视为键盘。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 物理键盘上的触发器按键
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 如何使用C/C++在MacOSX中获得键盘布局
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 在其他文件中创建类时在 c++ 项目中不起作用
- 类与私有变量的其他类之间的线程安全性
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- GlobalAlloc而不是其他分配方法
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 断言中的Fold表达式在某些计算机上编译,但在其他计算机上不编译
- 区分键盘记录器中的密码和其他类型的键盘输入
- 鼠标,键盘和其他HID设备的唯一标识符
- 其他语言的Qt键盘输入
- 全球安装的键盘钩可防止键盘输入其他应用程序
- 如何在 Linux 应用程序中专门使用其他键盘
- 是否有可能有一个程序将键盘输入更改为所有其他程序
- C++键盘挂钩-退出程序,但也防止密钥在其他地方被处理