gpt4 book ai didi

java - 机器人一遍又一遍地打印相同的字符串

转载 作者:行者123 更新时间:2023-11-30 06:03:14 24 4
gpt4 key购买 nike

所以我正在编写一个代码,其中有一个 txt 文件,其中三个独立的行包含三个名称。运行代码后,我打开 MS Word,应用程序延迟 1 分钟。然后,代码应该将我的文件中的所有名称打印到 MS Word 中。

但我的代码正在做的是,它只是在我的 txt 文件中打印姓氏 3 次。现在我已经在我的 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

最佳答案

while 循环中再添加 1 秒延迟将解决您的问题。

TimeUnit.SECONDS.sleep(1);

这是代码。我做了一些修改。

Scanner sc = new Scanner(new File("D:\\f.txt"));
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
Robot robot = new Robot();

TimeUnit.SECONDS.sleep(2); // Increase the initial sleep time if necessary.

while (sc.hasNextLine()) { // use hasNextLine() so you can get rid of the if block at the end of the code

TimeUnit.SECONDS.sleep(1); // added another 1 second sleep
String scan = sc.nextLine();
scan = "@" + scan;
System.out.println(scan);
StringSelection sl = new StringSelection(scan);

cb.setContents(sl, sl);

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);
}

enter image description here

关于java - 机器人一遍又一遍地打印相同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52703178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com