Java 的键盘记录器

Key Logger with Java

我已经创建了这段代码,这段代码运行良好,但它的输出并不像我预期的那样,它同时提供了鼠标事件和按键事件,但我只想要按键事件

按下:Z 2018 年 1 月 11 日 6:46:27 下午 org.jnativehook.GlobalScreen$NativeHookThread 启用 信息:keycode_to_unicode [651]:使用键盘布局 0X0000000004090409。

已发布:Z 2018 年 1 月 11 日 6:46:28 下午 org.jnativehook.GlobalScreen$NativeHookThread 启用 信息:process_mouse_moved [424]:鼠标拖到 327、691。

package main;

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

public class Main implements NativeKeyListener{

    public static void main(String[] args) {
        try {
            GlobalScreen.registerNativeHook();
        } catch (NativeHookException e) {
            e.printStackTrace();
        }
        GlobalScreen.getInstance().addNativeKeyListener(new Main());
    }


    public void nativeKeyPressed(NativeKeyEvent e) {
       System.out.println("Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));

    }

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

    public void nativeKeyTyped(NativeKeyEvent arg0) {   
    }
}

默认情况下,启用所有日志记录。您应该按照 Logging and Console Output page.

中的说明关闭日志记录

旁注:class GlobalScreen 的最新版本(撰写本文时为 2.1.0)没有 getInstance() 方法。