Java, как написать _ с классом Robot

Я использую класс робота в своем Java-коде. Я хочу нажать клавишу "_", но код клавиши 189 не работает для кода

public void type() throws Exception

Robot rob = new Robot();

rob.keyPress(189);
rob.keyRelease(189);

person Marco    schedule 04.12.2019    source источник


Ответы (2)


Правильный способ - использовать SHIFT + -.

Robot rob = new Robot();
rob.keyPress(KeyEvent.VK_SHIFT);
rob.keyPress(KeyEvent.VK_MINUS);
rob.keyRelease(KeyEvent.VK_MINUS);
rob.keyRelease(KeyEvent.VK_SHIFT);

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

Robot rob = new Robot();
rob.keyPress(KeyEvent.VK_UNDERSCORE);
rob.keyRelease(KeyEvent.VK_UNDERSCORE);

Из этого источника они сказать:

Числа не имеют приоритета

Написание чисел на французской клавиатуре требует каждый раз использования клавиши Shift.

Это означает, что клавиатура AZERTY отдает приоритет таким вещам, как буквы с диакритическими знаками (например, é) и скобки, и даже амперсанд (&) над цифрами.

введите здесь описание изображения

Глядя на клавишу 8, вы можете найти подчеркивание.

person XtremeBaumer    schedule 04.12.2019

Это вызвано тем, что раскладка клавиатуры не имеет фактической клавиши подчеркивания. Чтобы получить подчеркивание, нужно нажать Shift + - (минус).

rob.keyPress(KeyEvent.VK_SHIFT);
rob.keyPress(KeyEvent.VK_MINUS);
rob.keyRelease(KeyEvent.VK_MINUS);
rob.keyRelease(KeyEvent.VK_SHIFT);

Источник

person SteffenJacobs    schedule 04.12.2019