ключевые события с классом робота - PullRequest
2 голосов
/ 18 июня 2009

во время обработки Robot.KeyPress (KeyEvent ...) возникает проблема: необходимо ли каждый раз указывать все ключи .... например Robot.KeyPress (KeyEvent.VK_A); Robot.KeyPress (KeyEvent.VK_B); Robot.KeyPress (KeyEvent.VK_C); если есть какой-нибудь шорткут для того, чтобы не повторять это каждый раз ... плз, скажите мне .....

и интерпретация для ключей, которые получены на стороне клиента, отличается ... чем интерпретация от стороны сервера ...

поэтому, пожалуйста, помогите мне ...

Ответы [ 3 ]

1 голос
/ 18 июня 2009

Я написал удобный API высокого уровня для использования робота AWT. Посмотрите на API жестов в библиотеке Window Licker .

Он решает проблему, заключающуюся в том, что события клавиш интерпретируются как разные символы в разных локалях , но только с помощью файлов конфигурации для описания раскладок клавиатуры. Я не нашел способа сделать это автоматически, просто используя API Java.

1 голос
/ 18 июня 2009

Не существует метода, который бы принимал одновременные нажатия клавиш от большого количества клавиш, поскольку большинство клавиатур имеют ограничение на максимальное количество нажатых клавиш в данный момент времени, и редко есть причина одновременно нажимать более трех клавиш в один раз.

Если у вас есть определенная последовательность ключей, которую вы хотите отправить повторно, вы можете поместить ее в массив и выполнить итерацию по ней:

        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 (), если нет, можете ли вы опубликовать именно то, что вы получаете на стороне клиент / сервер?

0 голосов
/ 21 сентября 2009

Возможно, вы захотите взглянуть на этот SmartRobot класс, который реализует именно то, что вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...