React on global hotkey in a Java program on Windows/Linux/Mac?

限于喜欢 提交于 2019-11-26 04:46:26

问题


A Java6 application sits in the system tray. It needs to be activated using a hotkey (e.g. Super-G or Ctrl-Shift-L etc) and do something (e.g. showing an input box).

How do I do that on:

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

回答1:


I've compiled a library for global hotkeys in java using JNA. It currently supports Windows, Linux and Mac OSX. It also supports media keys on windows and linux.

if anyone is interested, try https://github.com/tulskiy/jkeymaster

I would appreciate any feedback.

Thank you.




回答2:


For Linux (X11) there is JXGrabKey: http://sourceforge.net/projects/jxgrabkey/

There is also a tutorial for grabbing a global hotkey on Linux: http://ubuntuforums.org/showthread.php?t=864566

I didn't though find a solution for OS X yet.

To build something for all 3 platforms I'd suggest stripping down JIntellitype (it's Apache license) to it's global hotkey functionality and extending it with the OS X and X11 functionality...




回答3:


It seems that this is not doable in a cross-platform fashion without using the native interfaces.

On Windows, you can use the free JIntellitype library.




回答4:


If anyone wants to do the OSX or Linux versions of the JNI part of Jintellitype I would be more than happy to add those to the JIntellitype library.

Melloware

http://www.melloware.com




回答5:


I found this solution to work just great on windows. It does not require you to install any software like JIntelliType. Note that this is 32 bit dll and you can recompile for 64-bit JVM is do desire. All credits to original author of the blog.



来源:https://stackoverflow.com/questions/79658/react-on-global-hotkey-in-a-java-program-on-windows-linux-mac

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!