-1

を実装する単純なJavaプログラムを作成しようとしていますKeyListener

プログラムを中止するまで、または特定の条件が発生するまで、プログラムを継続的に実行したいと考えています。私がやりたかったのは、プログラムを実行した後、どのキーを押してもout.txtファイルに保存されることです。

public class StoreInFile implements KeyListener{
    public static void main(String[] args) {
    while(true){
    // **What should i do here such that it will call the keypressed event**.
    }
    }
    @Override
    public void keyPressed(KeyEvent e) {
        try{
              FileWriter fstream = new FileWriter("d:\\out.txt",true);
              BufferedWriter out = new BufferedWriter(fstream);
              out.write(e.getKeyChar());
              out.close();
              }catch (Exception ex){
              System.err.println("Error: " + ex.getMessage());
              }
    }

}

コンソールアプリケーションで達成することは可能ですか? 基本的に、 KeyLogger または KeyCatcher を作成したい思います。どうすればこれを達成できますか? 前もって感謝します。

4

3 に答える 3

2

For line based input, i.e. "users types text, user presses enter, your program receives what the user typed", the Scanner class should do just fine.

For single character input, such as "user presses x-key, your program receives a notification." you'll have to look into libraries such as CHARVA or Java Curses.

于 2012-06-07T09:07:45.890 に答える
1

オープン ソース フレームワークを試すことができますjLine: jLine

しかし、これは 100% Java ではありません。一部のネイティブ実装もあります。

于 2012-06-07T09:13:30.417 に答える
0

Windows で実行している場合は、JNAをお勧めします。キーフックやマウスフックを記述して、キー/マウス イベントを監視します。コンソール ウィンドウがアクティブでない場合でも機能します。

Windows の JNA キーボード フック

JNA マウスフックの動作例

于 2012-06-07T19:26:58.143 に答える