机器人键入错误的字符

时间:2012-09-08 12:56:53

标签: java awt keypress awtrobot

我有一个java机器人来输入字符,但它打印的内容如下:

  

.. 5. /。 .. .. // 5 / / 55 / / .. .. .. .. 5 5。 5。

而不是想要的字符串。 有人知道如何避免这种情况吗?

import java.awt.Robot;
import java.awt.AWTException;

Robot robot;

String txt = "o noes ";
char[] chars;

void setup() {

  chars = txt.toCharArray();

  try {
    robot = new Robot();
  } 
  catch(AWTException e) {
  }
  robot.setAutoDelay(1);

  for (int i = 0; i < 10000; i++) {
    int c = chars[(int)random(chars.length)];
    robot.keyPress(c);
    robot.keyRelease(c);
  }
}

2 个答案:

答案 0 :(得分:2)

根据KeyEvent的javadoc,您必须使用keyPress类的值,而不是keyPress的字符。

KeyEvent ke = new KeyEvent(<various parameters>);
ke.setKeyChar('a');
int code = ke.getKeyCode();

答案 1 :(得分:2)

你可能会考虑这种冗长但它有效http://pastebin.com/p0BdJxpy