-1

从系统读取所有键盘按键值并写入文件,不仅来自控制台,还来自系统的整个输入,如 wordpad 按键、notpad 按键等。

4

3 回答 3

1

像这样的东西?

            Scanner sc=new Scanner(System.in);
            String s=sc.nextLine();
            FileWriter fw = new FileWriter("/file.txt");
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(s);
            bw.flush();
            bw.close();
于 2013-07-30T11:39:37.283 回答
1

不,您无法在 java 程序之外捕获键事件。

如果你想这样做,你将不得不通过 C/C++ 库使用 OS 挂钩。

如果你真的想在Java中使用它,你仍然可以用JNI包装C代码......

这是一个解释如何在 Windows 上执行此操作的博客。

我们记得,Java 允许捕获键或组合键的键盘事件,但这仅在 Java 应用程序框架或控制台此时处于活动状态时才有效,但如果用户打开或选择另一个窗口,键盘事件将无法访问我们的 Java 应用程序。每个应用程序都有自己的事件(消息)队列,除非应用程序窗口(控制台)处于活动状态,否则键盘事件将被发送到此队列中。

于 2013-07-30T10:08:10.283 回答
-1

出于安全原因,Java 在 JVM 中运行的唯一目的是防止此类事情发生。这就是为什么您需要 C/C++ 来编写键盘记录器,因为 Java 无法到达 JVM 之外。

如果您想从您的应用记录密钥:

阅读更多关于 KeyListeners ( javadoc )

关于文件写入(示例

可能与在 Java 中没有焦点的情况下监听输入的重复

于 2013-07-30T10:07:02.167 回答