Java Swing 中的全局键盘记录器

Global Keylogger in Java Swing

我想在 Java Swing 中创建一个 Keylogger。当 focus 在 Swing Window 上时,我可以设法制作一个简单的键盘记录器来捕获击键并将它们写入日志文件。由于 focus 必须在 window 上,是否可以制作一个 invisible JFrame,即 总是在最前面? 像这样:

public class Logger extends JFrame implements KeyListener


logger.setVisible(false);
logger.setAlwaysOnTop(true);

这在 Java 中可行吗?

所以,您想要一个记录击键的键盘记录器,即使焦点不在 Java Swing window 上,对吧? Java 本身不能这样做,但是 Java 本机接口 (JNI) 可以。您可以 Google "Java System Hook" 并从 Github 下载 JAR。 (https://github.com/kristian/system-hook/releases) 一言以蔽之,只要程序运行,它就会一直记录您的键盘,而不管您关注的是哪个window。

我的使用方式:我写了一个程序,在我玩游戏的时候保持运行,它可以打印出我在游戏中按下的任何键。