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

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

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

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

person Community    schedule 17.09.2008    source источник
comment
Спехан: Вам удалось сделать это на OSX?   -  person OscarRyz    schedule 18.06.2009


Ответы (6)


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

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

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

Спасибо.

person Denis Tulskiy    schedule 21.06.2011
comment
больше не работает (Windows 10, последние версии jna) - person user1050755; 14.06.2019

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

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

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

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

person Torsten Uhlmann    schedule 14.10.2008
comment
Обновление: я начал разработку своей собственной кросс-платформенной глобальной библиотеки горячих клавиш под названием OsSupport. Я загрузил код в BitBucket под лицензией Apache 2.0: bitbucket.org/agynamix/ossupport-connector. В настоящее время OsSupport поддерживает только Mac из-за других существующих решений для Windows и Linux. Однако библиотека разработана как кроссплатформенная, а также поддерживает другие вещи, кроме горячих клавиш. Например, OsSupport может отправлять в систему события нажатия клавиш для имитации нажатия клавиши. - person Torsten Uhlmann; 18.08.2010
comment
Торстен, вы заинтересованы во включении кода Windows Jintellitype? Я автор этого кода и хотел бы видеть одну унифицированную библиотеку с Linux, Windows, Mac. - person Melloware; 17.03.2011
comment
Спасибо Торстен! Однако я не могу понять, как использовать это на Mac. Не могли бы вы предоставить Readme или что-то в этом роде? Меня интересует в основном захват медиа-ключей. - person Stelian Iancu; 22.02.2013

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

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

person Antti Kissaniemi    schedule 17.09.2008

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

Меллоуэр

http://www.melloware.com

person Community    schedule 27.10.2008

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

person cracked_all    schedule 23.05.2011

Я написал библиотеку Java для глобальных событий клавиш/мыши здесь. Это работает для Windows, Linux X11 и OSX.

https://github.com/repeats/SimpleNativeHooks

person vda8888    schedule 29.11.2020