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() 方法。
我已经创建了这段代码,这段代码运行良好,但它的输出并不像我预期的那样,它同时提供了鼠标事件和按键事件,但我只想要按键事件
按下: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() 方法。