Изменение буфера обмена снаружи после установки на JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Изменение буфера обмена снаружи после установки на Java

Сообщение Anonymous »

Я использую 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) {}
}
}
Если я скопирую что -то, используя cmd + c / strg + c за этот перерыв в 5 секунд, он все еще будет показывать текст в консоле, что я вложил в бубел, используя Java. Если я вставлю strg + v / cmd + v , конечно, вставьте новый копированный буфер обмена. Только Java не распознает его.
Что я могу сделать?

Подробнее здесь: https://stackoverflow.com/questions/313 ... it-in-java

Вернуться в «JAVA»