如何通过Robot键入Unicode字符

时间:2016-07-30 08:48:16

标签: java robot

如何通过跨平台方式的机器人键入unicode字符?我已经看到了解决方案,但只适用于Windows,例如:How to make the Java.awt.Robot type unicode characters? (Is it possible?), 有没有办法在Linux和Mac上执行此操作?

1 个答案:

答案 0 :(得分:3)

如果您的目标是在输入字段中写入内容,例如,这可能会起作用:

// 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。此外,如果你真的必须模拟按键本身,只有当你想输出它时,这将不起作用。