想实现这样一个功能:
当你敲键盘A时,实际上输入的是B。在网上查了查,说要用HOOK。
java能实现吗?
能给个例子不?例如:程序运行后.
你在word中想输入 hello word 时,只需要输入 H.
当然在其他程序中也一样.

解决方案 »

  1.   

    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.event.KeyListener; 
    import javax.swing.*;
    public class Xuliehao extends Applet implements ActionListener,KeyListener
    {
    Label lb=new Label("请输入序列号:\n");
    TextField txt1=new TextField(5);
    TextField txt2=new TextField(5);
    TextField txt3=new TextField(5);
    Button btn=new Button("确定");
    public void init()
    {
    add(lb);
    add(txt1);
    add(txt2);
    add(txt3);
        add(btn);
    btn.addActionListener(this);
    txt1.addKeyListener(this);
    }
    public void keyTyped(KeyEvent e){ 
    System.out.println("dasds");
    if(e.getSource()==txt1&&e.getKeyChar()=='h'){
    txt1.setText("ello world");

     
    };
    public void keyPressed(KeyEvent e){};
    public void keyReleased(KeyEvent e){};
    public void actionPerformed(ActionEvent e)
    {
    if(txt1.getText().equals("cenji")&&txt2.getText().equals("ngaig")&&txt3.getText().equals("uoyou")) 
        JOptionPane.showMessageDialog(null,"欢迎使用****");
    else
        JOptionPane.showMessageDialog(null,"序列号错误");
    }
    }
    //输入序列号那里写个'h'
      

  2.   

    除非jni  否则不可能实现
      

  3.   

    得到‘A’的int型数值加1后再转为CHAR型。不可以么?没试过滴!
      

  4.   

    你在word中想输入 hello word 时,只需要输入 H.
    当然在其他程序中也一样.//那岂不是要监视所有运行的程序?
      

  5.   

    除非用JNI,JAVA是做不到这样的底层的。
      

  6.   

    用java看来是不行了,用C++写个输入法吧.呵呵.