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
Antwort
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.
Awesome !, Aber ich denke, Sie sollten String mit StringSelection ersetzen – Joe343
Ja, Sie haben Recht! Danke für die Korrektur –
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? –