Java awt Робот по-прежнему не может нажимать стрелки не-numpad на окнах?

Эта ошибка известна годами, но все еще присутствует в Java 1.7.0_25 Версия, которую я использую на Windows 8. Следующий результат одинаков независимо от того, включен я numlock или нет:

Robot bot = new Robot();

bot.keyPress(KeyEvent.VK_UP); //this in documentation is non-numpad up arrow key
bot.keyRelease(KeyEvent.VK_UP); //pressed the numpad up arrow key

//folowing line is line #43
bot.keyPress(KeyEvent.VK_KP_UP); //this in documentation is numpad up arrow key
bot.keyRelease(KeyEvent.VK_KP_UP); //causes folowing exception:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid key code
at sun.awt.windows.WRobotPeer.keyPress(Native Method)
at java.awt.Robot.keyPress(Robot.java:358)
at test.RobotArrow.main(RobotArrow.java:43)

Я знаю, что этот вопрос уже задавался здесь, но более года назад, есть ли прогресс? Я не могу ничего гуглить, есть даже официальное сообщение об ошибке

Итак, есть ли в конечном итоге решение или нет?

2 ответа

// НАЖМИТЕ ОКНА + СТРЕЛКА ВЛЕВО

Robot divideWindow = new Robot();
divideWindow.keyPress(KeyEvent.VK_WINDOWS);
divideWindow.delay(100);
divideWindow.keyPress(KeyEvent.VK_LEFT);
divideWindow.delay(100);
divideWindow.keyRelease(KeyEvent.VK_LEFT);
divideWindow.delay(100);
divideWindow.keyRelease(KeyEvent.VK_WINDOWS);

У меня отлично работает:)

Возможный обходной путь - отключить numlock. Смотрите этот комментарий об ошибке JDK

Другие вопросы по тегам