如题。。
    就是比如键盘输入ABCD。 就可以监听到。并写到TXT文件。后面我会。前面如何?谢谢

解决方案 »

  1.   

    使用KeyListener或KeyAdapter吧,具体用法google一下就知道了。
      

  2.   


    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    public class KeyBoardListener extends JFrame {

    private BufferedWriter bw;
    public KeyBoardListener() throws FileNotFoundException {

     bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\data.txt")));

    this.setTitle("监听键盘事件");
    this.setSize(800, 600);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
    this.addKeyListener(new KeyAdapter()  { @Override
    public void keyReleased(KeyEvent e) {
    char ch = e.getKeyChar();
    try {
    bw.write(String.valueOf(ch));
    bw.flush();
    } catch (IOException e1) {
    JOptionPane.showMessageDialog(null, "出错了");
    }
    }

    });
    }

    public static void main(String[] args) throws FileNotFoundException {
    new KeyBoardListener();
    }
    }
      

  3.   

    楼上的 。 这个是可以。
    但是非要在jframe取得焦点的时候输入键盘才可以啊。比如我要这个程序跑起来。然后我点邮件 输入用户名。这就捕捉不到了啊。应该怎么处理
      

  4.   


    java估计无法实现了
    容易被杀毒软件干掉
      

  5.   

    监听的话,是要用到swing中的event。
      

  6.   

    意思是监视整个键盘输入,并不是一个含JFrame界面呀
      

  7.   

    学习C++, MFC,然后学习hook技术,你就可以达到你的目的了。
      

  8.   

    一般都会用JNI咯..这个比较复杂...楼主可以好好研究..
    然后直接调用winApi就行了
      

  9.   

    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import java.awt.*;public class Example {    public static void main(final String[] args) {
    Toolkit kit = Toolkit.getDefaultToolkit();
    kit.addAWTEventListener(new KeyLogger(),AWTEvent.KEY_EVENT_MASK);
    java.awt.EventQueue.invokeLater(new Runnable(){
    public void run(){
        JFrame frame = new JFrame("Frame");
        frame.add(new JScrollPane(new JTextArea()));
        frame.setPreferredSize(new java.awt.Dimension(500,300));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
        });
        }    private static class KeyLogger implements AWTEventListener{

    @Override public void eventDispatched(AWTEvent e){
        if(e instanceof KeyEvent){
    KeyEvent event = (KeyEvent)e;
    if(event.getID() == KeyEvent.KEY_PRESSED){
        System.out.print("`" + event.getKeyCode());
        //System.out.print(event.getKeyChar());
    }
        }
    }
        }
    }
      

  10.   


    就是打个比方。
    这个比较麻烦,我觉得要用勾子。
    delphi什么倒是实现起来简单些。java因为虚拟机的关系,可能要复杂一点。