在处理Robot.KeyPress(KeyEvent ...)时存在问题,每次指定所有键时都会出现问题.... 例如 Robot.KeyPress(KeyEvent.VK_A); Robot.KeyPress(KeyEvent.VK_B); Robot.KeyPress(KeyEvent.VK_C); 如果有任何不重复这个每次的shortkut ... plz告诉我.....Robot类别的关键事件
并且在客户端收到的密钥的解释是比...这是从服务器端发送。 ..
所以请帮我...
在处理Robot.KeyPress(KeyEvent ...)时存在问题,每次指定所有键时都会出现问题.... 例如 Robot.KeyPress(KeyEvent.VK_A); Robot.KeyPress(KeyEvent.VK_B); Robot.KeyPress(KeyEvent.VK_C); 如果有任何不重复这个每次的shortkut ... plz告诉我.....Robot类别的关键事件
并且在客户端收到的密钥的解释是比...这是从服务器端发送。 ..
所以请帮我...
没有从大量键接受同时按键,因为大多数键盘在给定时间对按键的最大数量的限制方法,并且很少有理由一次同时按压三个以上的按键。
如果您想要重复发送键的特定序列,你可以把它放在一个数组和遍历它:
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()调用,如果没有,你可以张贴你在客户端/服务器端收到的?
这将是一个使用for-each循环的好地方: for int key:events){ ... } – James 2009-06-18 12:38:15
我写了一个高级的,方便使用AWT机器人的API。看看Window Licker库中的手势API。
它解决了问题key events are interpreted as different symbols in different locales,但只能通过使用配置文件来描述键盘布局。我还没有找到一种方法可以通过使用Java API自动执行此操作。
你可能想看看这个SmartRobot类,它实现正是你需要
你有钥匙的解释看这个问题可能是由这个问题提出了同样的问题:HTTP://计算器.com/questions/915581/how-to-enter-text-in-a-cross-platform-way-with-the-awt-robot – Nat 2009-06-18 13:39:00