Подтвердить что ты не робот

Реагировать на глобальную горячую клавишу в Java-программе на Windows/Linux/Mac?

Приложение Java6 находится в системном трее. Его нужно активировать с помощью горячей клавиши (например, Super-G или Ctrl-Shift-L и т.д.) И сделать что-нибудь (например, отобразить окно ввода).

Как это сделать:

  • Windows (XP или Vista)
  • OS/X
  • Linux (Gnome или KDE)
4b9b3361

Ответ 1

Я собрал библиотеку для глобальных горячих клавиш в java, используя JNA. В настоящее время он поддерживает Windows, Linux и Mac OSX. Он также поддерживает медиа-ключи на окнах и Linux.

если кто-то заинтересован, попробуйте https://github.com/tulskiy/jkeymaster

Буду признателен за любую обратную связь.

Спасибо.

Ответ 2

Для Linux (X11) есть JXGrabKey: http://sourceforge.net/projects/jxgrabkey/

Существует также учебник по захвату глобальной горячей клавиши в Linux: http://ubuntuforums.org/showthread.php?t=864566

Я еще не нашел решение для OS X.

Чтобы создать что-то для всех 3-х платформ, я предлагаю отключить JIntellitype (это лицензия Apache) на его глобальные функциональные клавиши и расширить его с помощью функциональных возможностей OS X и X11...

Ответ 3

Похоже, что это невозможно сделать кросс-платформенным способом без использования собственных интерфейсов.

В Windows вы можете использовать бесплатную библиотеку JIntellitype.

Ответ 4

Если кто-то хочет сделать версии OSX или Linux части JNI Jintellitype, я был бы более чем счастлив добавить их в библиотеку JIntellitype.

Melloware

http://www.melloware.com

Ответ 5

Я нашел это решение, которое отлично работает на Windows. Это не требует установки какого-либо программного обеспечения, такого как JIntelliType. Обратите внимание, что это 32-разрядная dll, и вы можете перекомпилировать 64-битную JVM, это желание. Все кредиты оригинальному автору блога.