Отображение глобальных событий ввода любой ОС в другие события ввода с помощью Java - PullRequest
2 голосов
/ 17 марта 2012

Я не мог придумать лучшего названия, поэтому позвольте мне уточнить:

Существуют программы, такие как JoyToKey , которые позволяли пользователю отображать нажатия кнопок на любом джойстике на любое ключевое событие и событие мыши. Честно говоря, я не знаю реальной базовой реализации здесь, но похоже, что либо JoyToKey «повсеместно» отправляет эти сопоставленные входные данные в любое приложение, на которое фокусируется пользователь, либо просто вызывает глобальные входные события.

Итак, дело в том, что в Java-приложении, если мы хотим прослушать любой ввод с клавиатуры или мыши, мы можем легко сделать это с классами KeyListener и MouseListener, но я говорю здесь, если Я хочу создать приложение Java, которое будет прослушивать все указанные пользователем входные данные (будь то от джойстика, сенсорного экрана или чего-либо еще) независимо от того, какое приложение в данный момент находится в фокусе, и сопоставить эти входные данные с другими входными данными и макросами. Например, если я хочу выполнить Hadoken в Street Fighter, я говорю программе «эй, если я нажму« P »или« Joystick 1 Button 10 », вызовите следующие события клавиатуры соответственно« стрелка вниз »в первом (1 / 60) миллисекунда, «стрелка вниз + вправо» в следующую (1/60) миллисекунду, «стрелка вправо» в следующую (1/60) миллисекунду и, наконец, «Z» в следующую (1/60) миллисекунду ".

Так что то, что я ищу здесь, отличается от JoyToKey в следующем аспекте:

  1. Я ищу, как написать программу, похожую на JoyToKey, в Java .
  2. не ограничивается только джойстиком. Позволяет пользователю отображать все виды аппаратных входов на любой другой аппаратный ввод.

В связи с природой Java, и мы напрямую вызываем ОС, я беспокоюсь о возможностях кроссплатформенности. Механизм, лежащий в основе каждой ОС, может немного отличаться, но в любом случае возможно ли это в Java? Если да, то какой API Java я должен искать? Есть ли какие-то аппаратные проблемы, о которых следует знать?

1 Ответ

0 голосов
/ 17 марта 2012

Если вы работаете в Linux, проверьте привязки java-gnome .Пакет org.gnome.gdk обеспечивает доступ к общесистемным событиям устройства.

...