当前位置: 首页 > 知识库问答 >
问题:

找不到JNativeHook类

归俊
2023-03-14

我需要一个KeyListener,它也可以在聚焦GUI组件之外工作,所以在进行研究之后,我遇到了JNativeHook库。但是,当我下载了ZIB文件(从这里开始)并将JNativeHook-2.1.0.Jar添加到我的Eclipse项目(属性->Java构建路径->Libraries->Add External Jar),运行TestProgramm时就会出现错误消息。

我的程序

package key;

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

public class GlobalKeyListenerExample implements NativeKeyListener {
    public void nativeKeyPressed(NativeKeyEvent e) {
        System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));

        if (e.getKeyCode() == NativeKeyEvent.VC_ESCAPE) {
            try {
                GlobalScreen.unregisterNativeHook();
            } catch (NativeHookException e1) {
                
                e1.printStackTrace();
            }
        }
    }

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

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

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

            System.exit(1);
        }

        GlobalScreen.addNativeKeyListener(new GlobalKeyListenerExample());
    }
}

共有1个答案

秦伯寅
2023-03-14

我也经历过同样的问题。

对我来说,解决方案是将JNativeHook.jar放在类路径中,而不是ModulePath中。

 类似资料:
  • JNativeHook 为 Java 程序提供全局的键盘和鼠标事件侦听功能。你可以来处理程序外的键盘输入和鼠标动作。当然 JNativeHook 使用了 JNI 技术调用了系统的方法来实现该功能。 支持的事件包括: Key Press Events Key Release Events Key Typed Events Mouse Down Events Mouse Up Events Mouse

  • 我正在制作一个具有JavaFX图形用户界面的翻译程序。我正在使用JNativeHook来启用全局keylisteners,当应用程序不在焦点中时。当alt和t同时按下时,程序应该从任务栏中恢复自己。 但是,当我按alt和t时,它会出现一个错误,说明JNativeHook线程不能与javafx线程一起运行。 有没有什么方法可以让JNativeHook线程访问我的javafx线程,以便在程序最小化后用

  • 我正在为PC游戏做一个简单的叠加程序。它只是一个位于屏幕中央的透明矩形,但其大小由用户的鼠标滚轮控制。所以概念是简单地将透明矩形的大小与敌方玩家的大小匹配,来计算他的距离。 不幸的是,我不能用传统的鼠标监听器实现这一点,因为鼠标必须同时关注游戏和覆盖程序。我正在尝试JNativeHook,但无法更新我的矩形。有什么建议吗?

  • 我已经将Jitpack repo和依赖项从Github添加到pom中。但它仍然无法编译。然而,当我指向导入块中的行时,它清楚地显示了模块的描述。VSCode截图 例如,我尝试导入com.github.kwhat.jnativehook.GlobalScreen,它显示了模块的描述,但仍然用红色下划线并显示错误: 类型为com。github。科哈特。jnativehook。无法通过Java访问Glo

  • 问题内容: 我已经安装了两个jdk-jdk 1.5和jdk 1.8。我有以下Ant build.xml配置文件: 在安装jdk1.8之前,从Eclipse调用的Ant成功编译了所有源代码。但是现在,我有以下错误消息: 我的JAVA_HOME和JRE_HOME: 并在Eclipse JRE中将其设置为1.5。Java 1.8在安装过程中会设置一些配置吗? 问题答案: 已知低于1.9.0的Apache

  • 我已经安装了两个JDK--JDK1.5和JDK1.8。我有以下Ant build.xml配置文件: 在安装JDK1.8之前,从Eclipse调用的Ant成功地编译了所有源代码。但现在,我有以下错误消息: 我的JAVA_HOME和JRE_HOME: 并在Eclipse JRE中设置为1.5。Java 1.8在安装过程中是否设置了一些配置?