У нас есть предоставленная пользователем строка, которая может содержать символы Юникода, и мы хотим, чтобы робот набрал эту строку.
Как преобразовать строку в ключевые коды, которые будет использовать робот?
Как вы это сделаете, так что это также зависит от версии Java (1.3 -> 1.6)?
То, что мы работаем для символов "ascii" это
//char c = nextChar();
//char c = 'a'; // this works, and so does 'A'
char c = 'á'; // this doesn't, and neither does 'Ă'
Robot robot = new Robot();
KeyStroke key = KeyStroke.getKeyStroke("pressed " + Character.toUpperCase(c) );
if( null != key ) {
// should only have to worry about case with standard characters
if (Character.isUpperCase(c))
{
robot.keyPress(KeyEvent.VK_SHIFT);
}
robot.keyPress(key.getKeyCode());
robot.keyRelease(key.getKeyCode());
if (Character.isUpperCase(c))
{
robot.keyRelease(KeyEvent.VK_SHIFT);
}
}