【发布时间】:2018-10-08 13:14:40
【问题描述】:
所以我正在编写一个代码,其中有一个 txt 文件,其中三个单独的行中有三个名称。运行代码后,我打开我的 MS Word,应用程序延迟 1 分钟。然后,该代码应该将我文件中的所有名称打印到 MS Word 中。
但是我的代码正在做的是,它只是将我的 txt 文件中的姓氏打印了三遍。现在我已经在我的 IDE 中使用 System.out.println() 打印了名称,并且正在打印所有名称。问题是当机器人在 MS Word 中键入名称时。请问谁能解决这个问题?
Scanner sc = new Scanner(br);
String scan = sc.nextLine();
TimeUnit.MINUTES.sleep(1);
while (scan != null) {
System.out.println("I am here");
System.out.println(scan);
scan = "@" + scan;
StringSelection sl = new StringSelection(scan);
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
cb.setContents(sl, sl);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.keyPress(KeyEvent.VK_SPACE);
robot.keyRelease(KeyEvent.VK_SPACE);
if (sc.hasNext()) {
scan = sc.nextLine();
} else {
break;
}
}
所以我的txt文件是这样的
Ned Stark
Arya Stark
Robb Stark
并没有输入所有这些名称,而是输入了以下内容
@Robb Stark
@Robb Stark
@Robb Stark
【问题讨论】:
-
你的代码抛出异常:
java.lang.IllegalStateException: cannot open system clipboard -
@RoshanaPitigala 它不在我的系统上...
-
@RoshanaPitigala 它也不在我的系统上。你在运行代码之前打开过你的 MS Word 吗?
-
Thenoob 我想知道你是否尝试过“Clipboard.getData()”或类似的东西,看看是剪贴板还是机器人有问题。
-
@JavaScriptCoder 我没有。我现在正在尝试,完成后我会告诉你。谢谢:)
标签: java string clipboard awtrobot