java - 使用 Java 将任何操作系统的全局输入事件映射到另一个输入事件

标签 java input operating-system mapping hardware

我想不出更好的标题,所以请允许我详细说明:

有程序如JoyToKey ,这允许用户将任何操纵杆上的按钮输入映射到任何键事件和鼠标事件。坦率地说,我不知道这里真正的底层实现,但它就像 JoyToKey“无处不在”将这些映射输入发送到用户关注的任何应用程序,或者它只是调用全局输入事件。

事情是这样的,在 Java 应用程序中,如果我们想监听任何键盘或鼠标输入,我们可以使用 KeyListenerMouseListener 轻松实现类,但我在这里说的是,如果我想创建一个 Java 应用程序来监听所有用户指定的输入(来自操纵杆、触摸屏或其他),而不管哪个应用程序当时具有焦点和 map 这些输入到其他输入和宏。例如,如果我想在 Street Fighter 中执行 Hadoken,我会告诉程序“嘿,如果我按下‘P’或‘Joystick 1 Button 10’,在第一个 (1/60) 毫秒,下一个 (1/60) 毫秒为“向下+右箭头”,下一个 (1/60) 毫秒为“右箭头”,最后是下一个 (1/60) 毫秒为“Z”。

所以我在这里寻找的与JoyToKey在以下方面不同:

  1. 我正在寻找如何用 Java 编写类似 JoyToKey 的程序。
  2. 不仅限于操纵杆。允许用户将所有类型的硬件输入也映射到任何其他硬件输入。

由于Java的特性,我们直接调用操作系统,我比较关心跨平台能力。每个操作系统的底层机制可能有点不同,但无论如何,这在 Java 中可能吗?如果是这样,我应该寻找哪个 Java 的 API?是否需要注意一些特定于硬件的问题?

最佳答案

如果您使用的是 Linux,请查看 java-gnome绑定(bind)。 org.gnome.gdk 包提供对系统范围设备事件的访问。

关于java - 使用 Java 将任何操作系统的全局输入事件映射到另一个输入事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9747767/

相关文章:

operating-system - CPU和主存需要驱动才能工作吗?

linux - 尝试在 Mandriva 上构建 OS161 时出现 "bmake: no system rules (sys.mk)"

Java:写入文件的内容在写入所有行后会被覆盖

java - 列表与按键扫描

从 HTML 表单到 UPDATE MySQL 的 PHP 数组

multithreading - 先发制人如何运作?

java - .jad 文件 -> 了解编译器版本

java - 没有这样的表..当我在 android eclipse 中修改表时

c++ - 如何像 "top"linux 命令一样进行控制台输入?

java - 如何在JSP中对输入框的文本更改执行查询