【问题标题】:What are the key codes for macro keys on gaming keyboards?游戏键盘上的宏键的键码是什么?
【发布时间】:2014-12-01 10:32:15
【问题描述】:

我正在寻找游戏键盘(即 Corsair K90 键盘或罗技游戏键盘)上 G1-G18 宏键的键码。 我想将全局键监听器放在 C++ 中的这些键集上。

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

Java 测试代码:

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

}

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

【问题讨论】:

  • AFAIK 没有。这些键在键盘级别被编程以发送标准键序列。
  • 这是关于 Java 还是 C++?我不明白。你试过MouseListener吗?

标签: java keyboard-events keyevent


【解决方案1】:

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

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

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


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


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

【讨论】:

  • 只是为了登录,即我在 2021 年拥有带有 gkeys 的 fantech 键盘。公司不为 linux 制作驱动程序(在我的例子中是 ubuntu)。运行“xev”命令并捕获终端中输入的键码。然后 key-mapper 实用程序将键更改为操纵杆(希望)工作。但即在搅拌机中,我尝试映射这些动作,搅拌机说,不支持键盘输入:) 啊
猜你喜欢
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 2018-08-21
  • 2017-11-17
  • 2010-09-29
  • 2014-08-09
  • 1970-01-01
  • 2021-12-10
相关资源
最近更新 更多