我一直在尝试从awt使用Robot,在应用程序上输入一些文本。问题是,我无法输入任何字母,如ê,à或á。
我已经尝试过这样的打印^ e例如但即使这样也行,它只是不打印任何VK_CIRCUMFLEX
不确定这是否重要,但我正在Mac上进行测试。
任何帮助都会很好。
答案 0 :(得分:3)
您可以使用剪贴板结合CTRL / COMMAND + V为您完成工作。下面的代码至少适用于Windows(Mac键组合可能需要不同的序列才能进行粘贴)。
public static void main(String[] args) throws AWTException {
String osName = System.getProperty("os.name");
boolean isOSX = osName.startsWith("Mac OS X");
boolean isWin = osName.startsWith("Windows");
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection str = new StringSelection("Héllõ Wörld");
clipboard.setContents(str, str);
Robot robot = new Robot();
if (isMac) {
// ⌘-V on Mac
robot.keyPress(KeyEvent.VK_META);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_META);
} else if (isWin) {
// Ctrl-V on Win
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
} else {
throw new AssertionError("Not tested on "+osName);
}
}