Я пытался найти способ использовать робота, чтобы иметь возможность набирать строку. В настоящее время я использую следующее:
public void type(String s) {
int keyCode;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (Character.isUpperCase(c)) {
bot.keyPress(KeyEvent.VK_SHIFT);
bot.delay(1);
}
keyCode = KeyEvent.getExtendedKeyCodeForChar(c);
bot.keyPress(keyCode);
bot.delay(1);
bot.keyRelease(keyCode);
if (Character.isUpperCase(c)) {
bot.keyRelease(KeyEvent.VK_SHIFT);
bot.delay(1);
}
}
}
У меня проблема, если я хочу набрать строку "Cat!" например; Я бы набрал "Кот" и нет! Код клавиши для! регистрируется как 517, хотя я думаю получить 49 (1) и нажать shift.
Есть ли простой способ печатать такие символы, как! @ или #, не находя keyCode для числа под ним и нажимая shift?
(метод, полученный из Преобразование символа в Java KeyEvent KeyCode )