首页 > 解决方案 > 机器人从剪贴板多次打印相同的字符串

问题描述

我写了一个函数,通过 Robot 类打印一个字符串。但是当我多次调用该函数时,每次它都会打印最后一个字符串。以下是我的代码:

package test;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;

public class ForTesting {
private static void typeInModalWindow(String stringToBeTyped) throws AWTException{
    Robot robot = new Robot();
    StringSelection stringSelection = new StringSelection(stringToBeTyped);
    System.out.println("String recevied :: "+stringToBeTyped);
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    clipboard.setContents(stringSelection,null);
    clipboard.setContents(stringSelection,stringSelection);
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_CONTROL);
  }

public static void main(String[] args) throws AWTException {
    typeInModalWindow("USER");
    typeInModalWindow("PASS");
    typeInModalWindow("another");
    //anotheranotheranother
  }
}

为此,在执行之前,我将光标保留在代码的最后一个注释部分,因此结果会打印在那里。

标签: javaawtclipboard

解决方案


推荐阅读