在JAVA中设置后,从外部更改剪贴板

时间:2015-07-09 05:33:45

标签: java clipboard

我正在使用SystemClipboard读写剪贴板。问题是,我想写入SystemClipboard(它完美地工作)但后来希望能够看到一个人在做什么?

public static void main(String args[]) throws InterruptedException {
    StringSelection s = null;
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
             (s = new StringSelection("test")), s
        );

    Clipboard systemClipboard;
    systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
    Transferable transferData = systemClipboard.getContents( null ); 
    for(DataFlavor dataFlavor : transferData.getTransferDataFlavors()){ 
        Object content;
        try {
            content = transferData.getTransferData( dataFlavor );
            if ( content instanceof String ) { 
                System.out.println((String)content);
            } else {
                System.out.println(content+ "?");
            }
        } catch (UnsupportedFlavorException | IOException e) {} 
    }

    Thread.sleep(5000);
    systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
    transferData = systemClipboard.getContents( null ); 
    for(DataFlavor dataFlavor : transferData.getTransferDataFlavors()){ 
        Object content;
        try {
            content = transferData.getTransferData( dataFlavor );
            if ( content instanceof String ) { 
                System.out.println((String)content);
            }
        } catch (UnsupportedFlavorException | IOException e) {} 
    }
}

如果我在5秒钟内使用CMD + C / Strg + C复制某些东西,它仍然会在控制台中显示我使用Java放入剪贴板的文本。如果我通过Strg + v / CMD + V粘贴,它当然会粘贴新复制的剪贴板。只有Java不识别它。

我该怎么办?

0 个答案:

没有答案