在密钥保持期间,JNativeHook注册了比想要的更多的keyPresses

时间:2014-02-22 21:23:58

标签: java

我正在使用JNativeHook来听取按键操作。按住键时,假设计算机应该键入键4次,每个JNativeHook方法将注册更多。

我试过了:

public void nativeKeyReleased(NativeKeyEvent e) {
 System.out.println("registered key release");
}
public void nativeKeyPressed(NativeKeyEvent e) {
 System.out.println("registered key press");
}
public void nativeKeyTyped(NativeKeyEvent e) {
 System.out.println("registered key type");
}

所有这些方法都会在按下按键时注册错误的按键次数。我不认为这是JNativeHook库的一个小故障,因为它几乎与Java的KeyListener相同,除了它是全局的。

提前致谢。

2 个答案:

答案 0 :(得分:2)

当用户按下某个键时,将调用keyPressed,然后调用keyTyped,最后当用户从该键释放他/她的手指时,调用keyReleased。尝试打印出keyPressed,keyTyped和keyReleased消息,而不是在任何地方输入“registered”,以便了解发生了什么。

答案 1 :(得分:0)

  

我输入的代码只是一个示例。在我的实际程序中,我可以确认所有三个都注册的次数超过了需要的次数。

如果是这种情况,并且您仍然遇到问题,请report a bug。由于某种原因,您的平台上无法启用可检测的自动重复。