我已经知道如何使用java.awt.Robot键入单个字符keyPress,如下所示.如何在文本框中一次输入一个完整的预定义String值?
robot.keyPress(KeyEvent.VK_1);
robot.keyPress(KeyEvent.VK_1);
robot.keyPress(KeyEvent.VK_1);
// instead, enter String x = "111"
Run Code Online (Sandbox Code Playgroud)
Eng*_*uad 41
常见的解决方案是使用剪贴板:
String text = "Hello World";
StringSelection stringSelection = new StringSelection(text);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, stringSelection);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
Run Code Online (Sandbox Code Playgroud)
你需要"输入"这个角色,这是一个按下并释放动作......
robot.keyPress(KeyEvent.VK_1);
robot.keyRelease(KeyEvent.VK_1);
Run Code Online (Sandbox Code Playgroud)
现在你可以复制并粘贴三次,但我只是把它放在一个循环中
小智 6
从Java 7开始,您还可以使用KeyEvent.getExtendedKeyCodeForChar(c)。仅适用于小写字母的示例可能是:
void sendKeys(Robot robot, String keys) {
for (char c : keys.toCharArray()) {
int keyCode = KeyEvent.getExtendedKeyCodeForChar(c);
if (KeyEvent.CHAR_UNDEFINED == keyCode) {
throw new RuntimeException(
"Key code not found for character '" + c + "'");
}
robot.keyPress(keyCode);
robot.delay(100);
robot.keyRelease(keyCode);
robot.delay(100);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23119 次 |
| 最近记录: |