Robot类的关键事件

时间:2009-06-18 12:03:06

标签: java

在处理Robot.KeyPress(KeyEvent ...)时出现问题是每次都指定所有键是必要的....        例如 Robot.KeyPress(KeyEvent.VK_A); Robot.KeyPress(KeyEvent.VK_B); Robot.KeyPress(KeyEvent.VK_C); 如果每次都没有重复这个短信,请告诉我......

并且在客户端收到的密钥的解释是差异...而不是从服务器端发送...

所以请帮助我......

3 个答案:

答案 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类,它完全实现了您的需求