gpt4 book ai didi

java剪贴板错误(bug)?

转载 作者:行者123 更新时间:2023-11-30 07:17:57 27 4
gpt4 key购买 nike

我有一个程序,它打开一个程序,然后将一个字符串复制并粘贴到该程序中,一段时间后,它使用带有 ctrl+c 的机器人将一个字符串从程序复制到剪贴板。然后我的程序检查复制的字符串是否包含单词,但不是检查最近复制的字符串,而是使用之前复制的开头字符串。这是一些代码:

new ProcessBuilder("pathToProgram").start();
copy(STRING1);
paste();
Thread.sleep(x);
//Move mouse to a position
//robot uses ctrl+a
copy();
Thread.sleep(100);
clipboardData = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
system.out.println(clipboardData);
if(clipboardData.contains(String2){
//do some stuff
}

system.out 只输出 String1 的值,而不输出 string2 的值。感谢您的帮助。

最佳答案

假设您的 copy() 方法设置了剪贴板文本,我遇到了完全相同的问题,并且找到了一个奇怪的解决方法。

Java clipboard ignores user copy if not SwingUtilities.invokeLater()

我可以获得剪贴板文本,它将始终显示用户随时复制的内容。但是,如果我以编程方式设置剪贴板文本,那么这就是我从剪贴板获得的全部内容 - 除非我推迟一次通过 SwingUtilities.invokeLater() 获取的剪贴板文本,然后剪贴板文本再次正常工作。然后我也可以再次破坏它 - 并再次“修复”它。

我不知道为什么会这样,因此我刚刚发布了问题(请参阅链接)。

关于java剪贴板错误(bug)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38059538/

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