React on global hotkey in a Java program on Window

2019-01-04 01:32发布

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)

5条回答
地球回转人心会变
2楼-- · 2019-01-04 02:04

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.

查看更多
地球回转人心会变
3楼-- · 2019-01-04 02:05

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.

查看更多
地球回转人心会变
4楼-- · 2019-01-04 02:09

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...

查看更多
狗以群分
5楼-- · 2019-01-04 02:20

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

查看更多
倾城 Initia
6楼-- · 2019-01-04 02:31

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.

查看更多
登录 后发表回答