如何通过Robot输入Unicode字符

问题描述 投票:0回答:1

如何跨平台通过机器人输入unicode字符?我已经看到了此问题的解决方案,但仅适用于 Windows,例如:How to make the Java.awt.Robot type unicode strings? (可以吗?), 有没有办法在 Linux 和 Mac 上做到这一点?

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

© www.soinside.com 2019 - 2024. All rights reserved.