java - 游戏键盘上宏键的键码是什么?

标签 java keyboard-events keyevent

我正在寻找游戏键盘上 G1-G18 宏键的键码,例如 Corsair K90 键盘或 Logitech 游戏键盘。 我想将全局 key 监听器放在 C++ 中的那些 key 集上。

G1-G18 不属于标准多媒体键码列表。

Java 测试代码:

public void keyTyped(KeyEvent e){
 System.out.println("Keycode pressed: "+e.getKeyCode());

}

当我按下任何 G1-G18 宏键时,这将永远不会获得键事件。我希望能够从这些键中获取键事件。

最佳答案

宏键通常是发送到键盘驱动程序的专有键,执行一些由管理软件本身硬编码的操作。

因此,系统实际上并不处理任何这些事件。

如果您需要与宏键交互,请寻找制造商的 SDK 或包含此类内容的 header 。它们随管理实用程序一起提供并不少见;查看实用程序所在的目录并检查 C/C++ 头文件。不过,您需要编写 JNI 绑定(bind)或使用 JNA 才能将它们与 Java 一起使用。


在不直接与驱动程序交互的情况下使用此类键的最佳方法是将它们设置为运行系统分派(dispatch)给 Java 的特定宏序列,并拥有一个Java 程序中对该特定序列的 react 。是的,这是一种黑客攻击,但这些 key 并不打算以这种方式(通常)使用。


将这些键实现为 joystick interfaces 也并非闻所未闻。 ,因此检查它们是否以这种方式发送可能是值得的。如果是,那么这可能就是您希望与他们交互的方式。

关于java - 游戏键盘上宏键的键码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27220756/

相关文章:

java - 在 Java 字节码中编写方法时,局部变量的成本与操作数堆栈大小的关系

java - 如何使用 XAdES4j 签署 xml 并引用 URI (#DatosEmision)?

javascript - CTRL+F 键盘事件未打开查找

python - pyaudio 和 pynput : recording while a key is being pressed/held down

c# - 触发表单按键事件

java - 缓存无效在 Shiro 中不起作用

java - 展开时折叠所有其他 Recyclerview 项目

matlab - 检测键盘输入Matlab

java - 如何在 Android 自动化 Activity 中触发 Java KeyEvent?

java - 如何设置按键绑定(bind)?