Используйте робота для ввода символов в Java

Я знаю, как заставить робота имитировать нажатие клавиши Y следующим образом:

    Robot.keyPress(KeyEvent.VK_Y);

Но как заставить робота нажать кавычку и точку?:

".  

Может ли кто-нибудь предоставить мне справочную страницу или пример кода?


person dfdsfsdfsddsgsrew    schedule 10.07.2011    source источник
comment
вы имеете в виду как System.out.print(\); или что-то другое?   -  person President James K. Polk    schedule 10.07.2011
comment
я хотел бы сделать что-то вроде этого: robot.keyPress(KeyEvent.VK_D);   -  person dfdsfsdfsddsgsrew    schedule 10.07.2011
comment
извините, мой вопрос изменен администратором.   -  person dfdsfsdfsddsgsrew    schedule 10.07.2011
comment
Я хочу сделать что-то вроде этого: stackoverflow.com/questions/397113/   -  person dfdsfsdfsddsgsrew    schedule 10.07.2011
comment
Я отредактировал ваш пост, надеюсь, приблизив его к вашему первоначальному замыслу. Если я ошибаюсь, пожалуйста, не стесняйтесь отредактировать его самостоятельно. Удачи!   -  person Hovercraft Full Of Eels    schedule 10.07.2011
comment
Вы редактируете хорошо и актуально. Спасибо!   -  person dfdsfsdfsddsgsrew    schedule 10.07.2011


Ответы (5)


Вы не всегда можете просто использовать переменную KeyEvent.VK....

Например, на моей клавиатуре символ «%» находится над «5». Чтобы использовать робота для ввода «5», код будет таким:

robot.keyPress(KeyEvent.VK_5); 
robot.keyRelease(KeyEvent.VK_5);

и используйте робота для ввода «%», код будет таким:

robot.keyPress(KeyEvent.VK_SHIFT); 
robot.keyPress(KeyEvent.VK_5); 
robot.keyRelease(KeyEvent.VK_5);
robot.keyRelease(KeyEvent.VK_SHIFT);
person camickr    schedule 10.07.2011

Если вы хотите использовать Robot, в KeyEvent есть константы VK_QUOTE и VK_PERIOD. Все эти и другие константы доступны через KeyEvent. API

person Hovercraft Full Of Eels    schedule 10.07.2011
comment
@dfdsfsdfsddsgsrew: Добро пожаловать. Я думаю, что кто-то отредактировал ваш исходный пост, удалив ключевую информацию, и я сожалею об этом. - person Hovercraft Full Of Eels; 10.07.2011
comment
Не нужно жалеть. Ваш ответ очень полезен для меня! - person dfdsfsdfsddsgsrew; 10.07.2011

Предыдущие Robot кажутся устаревшими.

На данный момент для JavaFX есть FXRobot

FXRobot robot = FXRobotFactory.createRobot(scene);
robot.keyPress(KeyCode.QUOTE);
robot.keyPress(KeyCode.PERIOD);
person Brad Turek    schedule 07.02.2018

Что вы подразумеваете под «программным вводом этих символов»?

Вы можете использовать обратную косую черту (\), чтобы напечатать двойную кавычку, но вам не нужно ничего особенного для точки:

System.out.println("This is a quote symbol: \" and this is a period: .");

Выход:

This is a quote symbol: " and this is a period: .
person Chris Gregg    schedule 10.07.2011
comment
Я вижу, это не то, чем ты хочешь заниматься. Похоже, вы ищете код клавиатуры для KeyEvent, который предоставил @Hovercraft Full of Eels. - person Chris Gregg; 10.07.2011

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

Система.out.println("\".");

person user510210    schedule 10.07.2011