Реагировать на глобальную горячую клавишу в Java-программе на Windows/Linux/Mac?
Приложение Java6 находится в системном трее. Его нужно активировать с помощью горячей клавиши (например, Super-G или Ctrl-Shift-L и т.д.) И сделать что-нибудь (например, отобразить окно ввода).
Как это сделать:
- Windows (XP или Vista)
- OS/X
- Linux (Gnome или KDE)
Ответы
Ответ 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, это желание. Все кредиты оригинальному автору блога.