2009-06-18 18 views
2

在处理Robot.KeyPress(KeyEvent ...)时存在问题,每次指定所有键时都会出现问题.... 例如 Robot.KeyPress(KeyEvent.VK_A); Robot.KeyPress(KeyEvent.VK_B); Robot.KeyPress(KeyEvent.VK_C); 如果有任何不重复这个每次的shortkut ... plz告诉我.....Robot类别的关键事件

并且在客户端收到的密钥的解释是比...这是从服务器端发送。 ..

所以请帮我...

+0

你有钥匙的解释看这个问题可能是由这个问题提出了同样的问题:HTTP://计算器.com/questions/915581/how-to-enter-text-in-a-cross-platform-way-with-the-awt-robot – Nat 2009-06-18 13:39:00

回答

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

这将是一个使用for-each循环的好地方: for int key:events){ ... } – James 2009-06-18 12:38:15