在处理Robot.KeyPress(KeyEvent ...)时出现问题是每次都指定所有键是必要的.... 例如 Robot.KeyPress(KeyEvent.VK_A); Robot.KeyPress(KeyEvent.VK_B); Robot.KeyPress(KeyEvent.VK_C); 如果每次都没有重复这个短信,请告诉我......
并且在客户端收到的密钥的解释是差异...而不是从服务器端发送...
所以请帮助我......
答案 0 :(得分:1)
由于大多数键盘在给定时间内对最大按键数量有限制,因此没有方法可以接受来自大量按键的同时按键,并且几乎没有理由同时按下三个以上的按键。一次。
如果你想要重复发送一个特定的键序列,你可以把它放在一个数组中并迭代它:
int[] events = {KeyEvent.VK_A, KeyEvent.VK_B, KeyEvent.VK_C};
Robot robot;
try {
robot = new Robot();
for (int i = 0; i < events.length; i++) {
robot.keyPress(events[i]);
robot.keyRelease(events[i]);
}
} catch (AWTException e) {
e.printStackTrace();
}
或者你可以把它放在一个函数中。
至于密钥的解释,我猜你忘记了keyRelease()调用,如果没有,你能准确发布你在客户端/服务器端收到的内容吗?
答案 1 :(得分:1)
我为使用AWT Robot编写了一个高级,方便的API。查看Window Licker库中的Gestures API。
它解决了key events are interpreted as different symbols in different locales的问题,但仅限于使用配置文件来描述键盘布局。我只是通过使用Java API找不到自动执行此操作的方法。
答案 2 :(得分:0)
您可能想看一下这个SmartRobot类,它完全实现了您的需求