Java读取Windows密钥状态

Java读取Windows密钥状态,java,key,keylistener,jnativehook,Java,Key,Keylistener,Jnativehook,我想编写一个程序,每次按下键盘上的按钮时播放声音。(即使该计划没有重点) 我正在使用JNativeHook,但是当我想添加键侦听器时,我得到一个错误,因为该方法。getInstance不包含在全局屏幕中:( 有人有主意吗 我的代码: package test1; import org.jnativehook.GlobalScreen; import org.jnativehook.NativeHookException; import org.jnativehook.keyboard.Nativ

我想编写一个程序,每次按下键盘上的按钮时播放
声音。(即使该计划没有重点)
我正在使用
JNativeHook
,但是当我想添加
键侦听器时,我得到一个
错误
,因为该方法。getInstance不包含在全局屏幕中:( 有人有主意吗

我的代码:

package test1;
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;

public class jNativeHookExample implements NativeKeyListener {

    public void nativeKeyPressed(NativeKeyEvent e) {
        System.out.println(NativeKeyEvent.getKeyText(e.getKeyCode()));

        if (e.getKeyCode() == NativeKeyEvent.VC_F9) {
            //play sound;
        }
    }

    public void nativeKeyReleased(NativeKeyEvent e) {
        System.out.println("Key Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
    }

    public void nativeKeyTyped(NativeKeyEvent e) {
        System.out.println("Key Typed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
    }

    public static void main(String[] args) {
        try {
            /* Register jNativeHook */
            GlobalScreen.registerNativeHook();
        } catch (NativeHookException ex) {
            /* Its error */
            System.err.println("There was a problem registering the native hook.");
            System.err.println(ex.getMessage());
            System.exit(1);
        }

        GlobalScreen.getInstance().addNativeKeyListener(new jNativeHookExample());
    }
}

这段代码对于jnativehook的1.1版可能还可以

从2.0版开始,
GlobalScreen
类没有
getInstance()
方法,
addNativeKeyListener()
现在是静态的,因此应该直接在
GlobalScreen
上调用它:

GlobalScreen.addNativeKeyListener(new jNativeHookExample());

你也可以发布错误的跟踪信息吗?