我创建了这个机器人:
try {
// Create class
Robot robot = new Robot();
// Wait 2 sec
robot.delay(2000);
// Get mouse on "texteditor"-symbol
robot.mouseMove(920, 840);
// Press it
robot.mousePress( InputEvent.BUTTON1_MASK );
robot.delay( 100 );
robot.mouseRelease( InputEvent.BUTTON1_MASK );
// Wait 2 sec
robot.delay( 2000 );
// Write "Hello" in "texteditor"
robot.keyPress(KeyEvent.VK_H);
robot.delay( 1000 );
robot.keyPress(KeyEvent.VK_E);
robot.delay( 1000 );
robot.keyPress(KeyEvent.VK_L);
robot.delay( 1000 );
robot.keyPress(KeyEvent.VK_L);
robot.delay( 1000 );
robot.keyPress(KeyEvent.VK_O);
} catch (AWTException e) {
e.printStackTrace();
}
好的,当我启动程序时会发生什么? :
机器人等待2秒。 =>好
鼠标移到texteditor-symbol =>好
按下=> texteditor打开=>好
机器人等待2秒=>好
机器人在短信发送者中写“l”,其余单词可以在机器人的源代码中找到=&gt;不好!</ p>
任何建议我做错了什么或我怎么做到这一点?问候和谢谢!!
答案 0 :(得分:1)
public void keyPress(int keycode)
按下给定的键。应使用
keyRelease
方法释放密钥。 (...)
您的代码只按键,不会释放它们。打开您喜欢的文本编辑器,并尝试手动编写“hello”而不释放您按下的任何键。键入第二个L
时会发生什么?钥匙已经按下了。
使用适当的版本尝试以下代码:
robot.keyPress(KeyEvent.VK_H);
robot.keyRelease(KeyEvent.VK_H);
robot.delay( 1000 );
robot.keyPress(KeyEvent.VK_E);
robot.keyRelease(KeyEvent.VK_E);
robot.delay( 1000 );
/* ... */