在Windows / Linux / Mac上的Java程序中响应全局热键?
Java6应用程序位于系统托盘中。 它需要使用热键(例如Super-G或Ctrl-Shift-L等)激活并执行某些操作(例如显示input框)。
我如何做到这一点:
- Windows(XP或Vista)
- OS / X
- Linux(Gnome或KDE)
我已经使用JNA在java中编译了全局热键的库。 它目前支持Windows,Linux和Mac OSX。 它还支持Windows和Linux上的媒体密钥。
如果有人有兴趣,请尝试https://github.com/tulskiy/jkeymaster
我将不胜感激任何反馈。
谢谢。
对于Linux(X11)有JXGrabKey: http : //sourceforge.net/projects/jxgrabkey/
还有一个在Linux上获取全局热键的教程: http : //ubuntuforums.org/showthread.php?t=864566
我没有findOS X的解决scheme。
要build立所有3个平台的东西,我build议剥离JIntellitype(这是Apache许可证),它的全球热键function,并扩展与OS X和X11function…
看来,这是不可行的跨平台的方式,而不使用本地接口。
在Windows上,您可以使用免费的JIntellitype库。
如果有人想要做Jintellitype的JNI部分的OSX或Linux版本,我将非常乐意把它们添加到JIntellitype库中。
Melloware
我发现这个解决scheme在windows上很好用。 它不需要你安装任何像JIntelliType这样的软件。 请注意,这是32位的DLL,你可以重新编译为64位JVM是否愿意。 所有的信贷原始作者的博客。