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

22 java linux windows macos hotkeys

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

我该怎么做:

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

Den*_*kiy 25

我使用JNA在java中为全局热键编译了一个库.它目前支持Windows,Linux和Mac OSX.它还支持Windows和Linux上的媒体键.

如果有人有兴趣,请尝试https://github.com/tulskiy/jkeymaster

我将不胜感激任何反馈.

谢谢.

  • 为什么不在答案中提供代码示例? (8认同)

Tor*_*ann 7

对于Linux(X11),有JXGrabKey:http://sourceforge.net/projects/jxgrabkey/

还有一个关于在Linux上获取全局热键的教程:http://ubuntuforums.org/showthread.php?t = 864566

我还没有为OS X找到解决方案.

要为所有3个平台构建一些东西,我建议将JIntellitype(它的Apache许可证)剥离到它的全局热键功能,并使用OS X和X11功能扩展它...

  • _Update_:我已经开始开发自己的跨平台全局热键库,名为OsSupport.我已经在Apache 2.0许可下将代码上传到BitBucket:https://bitbucket.org/agynamix/ossupport-connector.目前,OsSupport仅支持Mac,因为其他现有的Windows和Linux解决方案.但是,该库设计为跨平台,并且还支持除热键之外的其他内容.例如,OsSupport可以向系统发送按键事件,以模拟按键. (2认同)
  • Torsten,有兴趣整合Windows Jintellitype代码吗?我是该代码的作者,并希望看到一个带有Linux,Windows,Mac的统一库. (2认同)

Ant*_*emi 6

在不使用本机接口的情况下,这似乎无法以跨平台方式实现.

在Windows上,您可以使用免费的JIntellitype库.


小智 5

如果有人想要使用Jintellitype的JNI部分的OSX或Linux版本,我会非常乐意将它们添加到JIntellitype库中.

Melloware

http://www.melloware.com