当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在Windows/Linux/Mac上的Java程序中对全局热键做出反应?》经验,为你挑选了4个好方法。

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

我该怎么做:

Windows(XP或Vista)

OS/X

Linux(Gnome或KDE)

Denis Tulski.. 25

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

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

我将不胜感激任何反馈.

谢谢.



1> Denis Tulski..:

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

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

我将不胜感激任何反馈.

谢谢.


为什么不在答案中提供代码示例?

2> Torsten Uhlm..:

对于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可以向系统发送按键事件,以模拟按键.
Torsten,有兴趣整合Windows Jintellitype代码吗?我是该代码的作者,并希望看到一个带有Linux,Windows,Mac的统一库.

3> Antti Kissan..:

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

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



4> 小智..:

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

Melloware

http://www.melloware.com

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有