在 Windows/Linux/Mac 上的 Java 程序中对全局热键做出反应?

2022-09-02 00:49:26

Java6 应用程序位于系统托盘中。它需要使用热键(例如Super-G或Ctrl-Shift-L等)激活并执行某些操作(例如显示输入框)。

我如何在以下情况下执行此操作:

  • Windows(XP 或 Vista)
  • 操作系统/X
  • Linux (Gnome or KDE)

答案 1

我使用JNA在java中编译了一个全局热键库。它目前支持Windows,Linux和Mac OSX。它还支持Windows和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功能对其进行扩展...