Tenemos una cadena proporcionada por el usuario que puede contener caracteres Unicode, y queremos que el robot escriba esa cadena.¿Cómo hacer que Java.awt.Robot escriba caracteres Unicode? (¿Es posible?)
¿Cómo se convierte una cadena en claveCódigos que utilizará el robot?
¿Cómo se hace así que también es una versión java independiente (1.3 -> 1.6)?
Lo que hemos trabajando para caracteres ASCII "es"
//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);
}
}
Tal vez puedas poner una cadena en el portapapeles y enviar Ctrl + V – Yaocl
@Yaocl. Esa es ciertamente otra forma de obtener información para algo que acepte un 'pegado', a veces eso no está disponible. –
Ver también http://stackoverflow.com/a/14766664/34088 para una buena solución –