-1

システムからすべてのキーボード キーが押された値を読み取り、コンソールからだけでなく、ワードパッド キーの押下、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 で使用したい場合は、C コードを JNI でラップすることもできます...

これは、Windowsでそれを行う方法を説明するブログです。

覚えているように、Java ではキーまたはキーの組み合わせのキーボード イベントをキャッチできますが、これは Java アプリケーション フレームまたはコンソールが現時点でアクティブな場合にのみ機能しますが、ユーザーが別のウィンドウを開くか選択すると、キーボード イベントはJava アプリケーションに到達しません。各アプリケーションには独自のイベント (メッセージ) キューがあり、アプリケーション ウィンドウ (コンソール) がアクティブでない限り、キーボード イベントはこのキューに送信されます。

于 2013-07-30T10:08:10.283 に答える
-1

JVM で Java を実行する唯一の目的は、セキュリティ上の理由からそのようなことを防ぐことです。そのため、Java は JVM の外部にアクセスできないため、キー ロガーを作成するには C/C++ が必要です。

アプリからキーをログに記録する場合:

KeyListeners の詳細を読む ( javadoc )

そしてファイル書き込みについて(

おそらくJavaでフォーカスなしで入力をリッスンするの複製

于 2013-07-30T10:07:02.167 に答える