使用Java Robot类来模拟alt +向右箭头,绘制符号而不是转到下一页

时间:2014-05-07 19:37:16

标签: java awtrobot

我正在构建一个有两个按钮的小型Java应用程序 其中一个按钮应将chrome页面更改为上一页,
第二个应该转到下一页 我正在使用Java Robot类来激发执行此操作的快捷方式。

// next page (alt + right arrow)
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT); 
robot.keyRelease(KeyEvent.VK_ALT);

代码有效,但是当点击chrome中的地址栏时,
然后触发其中一个按钮,然后将奇怪的符号写入地址栏,而不是跳到下一个\上一页。标志是♠ ♦

我也尝试改变命令之间的顺序,但没有帮助。

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_RIGHT); 

1 个答案:

答案 0 :(得分:0)

似乎java.util.Robot总是使用numpad [arrow]键存在错误,只需手动尝试alt + numpad4或numpad6。我找不到原始的bug,这里有一些链接:

作为解决方法,您尝试从地址栏中移除焦点,以下内容对我有用:

robot.keyPress(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_ALT);
robot.delay(1); // seems to be required for the event to be registered
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_LEFT);
robot.keyRelease(KeyEvent.VK_LEFT);
robot.keyRelease(KeyEvent.VK_ALT);