为位于系统托盘中的Java程序创建键盘挂钩

时间:2012-04-26 19:25:24

标签: java keyboard system handle system-tray

基本上我有一个在系统托盘中运行的java程序,并希望添加make it so so if如果用户按下说CTRL + SHIFT + 1它选择了一个位于托盘中的java程序的右键单击选项

我想我正在寻找的是关于这样做的教程,或者最简单的方法。我之前从未做过这样的事情,所以可能是某种noobie教程?

由于

1 个答案:

答案 0 :(得分:1)

所以,创建一个键盘钩并不像它看起来那么容易,为了安全起见,java没有提供与系统事件交互的直接方法;因为它可能导致关于JVM,sysytem的内存和Java Framework的可移植性的严重问题。

你有四种方法来制作全局键盘钩子:

1-了解JNI / JNA,我更喜欢JNA,因为它比JNI容易得多,在这两种情况下你都应该处理.dll文件。

2 - 使用JIntellitype,正如您所说 - 发布了一些问题。

3- Sergei Biletnikov的优雅解决方案here

4-忽略Java,并尝试使用Autoit V3(我不是100%肯定它,但我认为你可以将信号/事件从Autoit发送到你的Java应用程序,所以Autoit只是作为一个抓住它的桥梁工作全球击键)