2016-07-30 2 views
1

Как ввести символ Юникода через робот в кросс-платформенном режиме? Я видел решения для этого, но работает только в Windows, например: How to make the Java.awt.Robot type unicode characters? (Is it possible?), Есть ли способ сделать это на Linux и Mac?Как ввести символ Юникода с помощью робота

+0

Решение, которое вы разместили, представляет собой своего рода хак, который использует комбинации клавиш Windows для символов Юникода, я бы не использовал его, так как он не очень гибкий. Почему бы вам не создать карту со всеми символами и позволить роботу копировать и вставлять их на случай, если вы пытаетесь написать символ юникода? –

ответ

1

Если это ваша цель, чтобы написать что-то в поле ввода, например, это, вероятно, может работать:

// Set desired character 
String c = "ä"; 
StringSelection selection = new StringSelection(c); 
// Copy it to clipboard 
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
clipboard.setContents(selection, null); 
// Paste it 
robot.keyPress(KeyEvent.VK_CONTROL); 
robot.keyPress(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_CONTROL); 

В принципе имитации копирования пасты, но это будет удалить текущее содержимое буфера обмена, если вы не сохраните его. В Mac OS вы хотите использовать VK_META вместо VK_CONTROL. Кроме того, это не сработает, если вам действительно нужно симулировать сам keypress, только если вы хотите его вывести.

+0

Awesome !, Но я думаю, вы должны заменить String StringSelection – Joe343

+0

Да, вы правы! Спасибо за исправление –

Смежные вопросы