【问题标题】:java Clipboard error (bug)?java剪贴板错误(错误)?
【发布时间】:2016-06-27 17:08:31
【问题描述】:

我有一个程序,它打开一个程序,然后它将一个字符串复制并粘贴到程序中,一段时间后,它使用带有 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 的值。感谢您的帮助。

【问题讨论】:

    标签: java clipboard


    【解决方案1】:

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

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

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

    我不知道为什么会这样,所以我刚刚发布了这个问题(见链接)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多