Поиск кода клавиши для символов для клавиши робота. Нажать Java - PullRequest
0 голосов
/ 26 апреля 2020

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

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 )

...