2016-07-30 11 views
1

Wie Unicode-Zeichen über den Roboter in Cross-Plattform-Art eingeben? Ich habe Lösungen dafür gesehen, aber funktioniert nur unter Windows zB: How to make the Java.awt.Robot type unicode characters? (Is it possible?), Gibt es eine Möglichkeit, dies unter Linux und Mac zu tun?Wie Unicode-Zeichen über Roboter eingeben

+0

Die Lösung, die Sie gepostet haben, ist eine Art Hack, der die Windows-Tastaturkombinationen verwendet, um Unicode-Zeichen zu verwenden, ich würde es sowieso nicht verwenden, da es nicht wirklich flexibel ist. Warum erstellst du keine Karte mit allen Charakteren und lässt den Roboter sie kopieren und einfügen, falls du versuchst, ein Unicode-Zeichen zu schreiben? –

Antwort

1

Wenn es Ihr Ziel, etwas in ein Eingabefeld zum Beispiel zu schreiben, könnte dies wahrscheinlich funktionieren:

// 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); 

Im Grunde eine Kopie Paste zu simulieren, aber es wird Ihre aktuellen Inhalt der Zwischenablage zu löschen, es sei denn Sie es speichern. Unter Mac OS möchten Sie VK_META anstelle von VK_CONTROL verwenden. Dies funktioniert auch nicht, wenn Sie den Tastendruck selbst simulieren müssen, nur wenn Sie ihn ausgeben wollen.

+0

Awesome !, Aber ich denke, Sie sollten String mit StringSelection ersetzen – Joe343

+0

Ja, Sie haben Recht! Danke für die Korrektur –

Verwandte Themen