gpt4 book ai didi

java - 循环剪贴板,仅第一次获取文本

转载 作者:行者123 更新时间:2023-12-01 18:09:56 25 4
gpt4 key购买 nike

我有一个错误,但我不明白。我没有收到异常。

我必须用机器人复制文本。

// mark the text
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_A);
robot.delay(1000);
robot.keyRelease(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_CONTROL);


// robot copy the text
robot.keyPress((KeyEvent.VK_CONTROL));
robot.keyPress((KeyEvent.VK_C));
robot.delay(1000);
robot.keyRelease((KeyEvent.VK_C));
robot.keyRelease((KeyEvent.VK_CONTROL));

然后我通过剪贴板获取文本

txt = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);

之后,我想将文本设置到剪贴板,这样我就可以使用机器人再次将其放入文本字​​段中。

StringSelection stringSelection = new StringSelection(txt);
clipboard.setContents(stringSelection, stringSelection);


// robot mark the hole text
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_A);
robot.delay(1000);
robot.keyRelease(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_CONTROL);


// robot put the text in
robot.keyPress((KeyEvent.VK_CONTROL));
robot.keyPress((KeyEvent.VK_V));
robot.delay(1000);
robot.keyRelease((KeyEvent.VK_V));
robot.keyRelease((KeyEvent.VK_CONTROL));

这就是循环中的所有内容

 while (j < liUnderElementList.size()) {}

第一次它按预期工作,但在第二遍时,我得到第一个复制的文本,而不是新文本。但我的剪贴板中是新文本。

如果我等待

TimeUnit.SECONDS.sleep(2)

没有任何改变。

有人可以帮助我吗?

我将非常感激。

最佳答案

您的演奏方式似乎与按键顺序有关。发布事件应该是从最后一个开始的。使用下面的一个:

robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_A);
robot.delay(1000);
robot.keyRelease(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_CONTROL);

关于java - 循环剪贴板,仅第一次获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60484897/

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