Вы должны задуматься над тем, как применять нажатия клавиш, помните, что вы «симулируете» физического пользователя.
Это означает, что для того, чтобы набрать A
, вам нужно нажать SHIFT A , затем отпустить A SHIFT (или, по крайней мере, отпустите SHIFT , когда вы закончите)
Ниже приведен действительно базовый тест, демонстрирующий общую концепцию. Откройте текстовый редактор, запустите программу, у вас будет 5 секунд, чтобы перевести редактор в фокус клавиатуры
Robot bot = new Robot();
bot.setAutoDelay(10);
Thread.sleep(5000);
Map<Character, Integer> mapStrokes = new HashMap<>();
mapStrokes.put('t', KeyEvent.VK_T);
mapStrokes.put('h', KeyEvent.VK_H);
mapStrokes.put('i', KeyEvent.VK_I);
mapStrokes.put('s', KeyEvent.VK_S);
mapStrokes.put(' ', KeyEvent.VK_SPACE);
mapStrokes.put('e', KeyEvent.VK_E);
mapStrokes.put('a', KeyEvent.VK_A);
String text = "This is A test";
for (char value : text.toCharArray()) {
if (Character.isUpperCase(value)) {
bot.keyPress(KeyEvent.VK_SHIFT);
}
int keyStroke = mapStrokes.get(Character.toLowerCase(value));
System.out.println("Type " + value);
bot.keyPress(keyStroke);
bot.keyRelease(keyStroke);
if (Character.isUpperCase(value)) {
bot.keyRelease(KeyEvent.VK_SHIFT);
}
}