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

G1-G18不属于标准多媒体键代码列表的一部分。

Java测试代码:

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

}

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

最佳答案

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

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

如果需要与宏键进行接口,请寻找制造商的SDK或包含此类标题的标头。它们随管理实用程序一起提供的情况并不罕见。在实用程序应用程序所在的目录中查找并检查C / C++头文件。不过,您需要编写JNI绑定或使用JNA才能将其与Java一起使用。

在不直接与驱动程序连接的情况下,使用此类键最好的方法是将它们设置为运行系统将分派给Java的特定宏序列,并在Java程序中对该特定序列产生反应。是的,这是一个hack,但是这些键并不是以这种方式使用的(通常)。

将这些密钥实现为joystick interfaces并不是没有听说过的,因此检查是否以这种方式发送它们可能是值得的。如果是的话,那可能就是您想要与它们进行交互的方式。

08-08 00:15