项目作者: dyorgio

项目描述 :
Global Key and Shortcuts listeners for Java
高级语言: Java
项目地址: git://github.com/dyorgio/jinputhook.git
创建时间: 2019-07-25T13:37:18Z
项目社区:https://github.com/dyorgio/jinputhook

开源协议:Apache License 2.0

下载


JInputHook

Build Status Maven Central

Global Key and Shortcuts listeners for Java.

Why use it?

  • Create global keyboard/shortcut listeners.
  • As an alternative to excelent lib JNativeHook.

Usage

For shortcut listener:

  1. // Initialize
  2. JInputHook.initialize();
  3. // Register shortcut listener
  4. Shortcut shortcut = Shortcut.fromKeys(Key.LCONTROL, Key.LSHIFT, Key.D);
  5. JInputHook.addShortcutListener(shortcut,
  6. new ShortcutListener() {
  7. @Override
  8. public void shortcutTriggered(Shortcut shortcut) {
  9. System.out.println("shortcutTriggered(" + shortcut + ").");
  10. }
  11. }
  12. );

For keyboard listener:

  1. // Initialize
  2. JInputHook.initialize();
  3. // Register global keyboard listener
  4. JInputHook.addListener(new GlobalKeyListener() {
  5. @Override
  6. public void keyPressed(Key key) {
  7. System.out.println(".keyPressed(" + key + ").");
  8. }
  9. @Override
  10. public void keyReleased(Key key) {
  11. System.out.println(".keyReleased(" + key + ").");
  12. }
  13. });

Maven

  1. <dependency>
  2. <groupId>com.github.dyorgio.runtime</groupId>
  3. <artifactId>jinputhook</artifactId>
  4. <version>1.0.2</version>
  5. <!-- Optional classifier by OS, don't use classifier to support ALL -->
  6. <!--<classifier>mac-universal</classifier>-->
  7. <!--<classifier>linux-universal</classifier>-->
  8. <!--<classifier>win-universal</classifier>-->
  9. </dependency>

Windows

On Windows, include JNA as dependency.

  1. <dependency>
  2. <groupId>net.java.dev.jna</groupId>
  3. <artifactId>jna-platform</artifactId>
  4. <version>${your.jna.version}</version>
  5. </dependency>

Linux

On Linux you need to adjust permissions of /dev/input/event* to can read:

  1. sudo chmod o+r /dev/input/event*

Or, according with distro, create a new dev rule file on /etc/udev/rules.d/YOUR-FILE-NAME.rules:

  1. SUBSYSTEM=="input", KERNEL=="event*", MODE="644"