Java - получение из буфера обмена не работает после установки в буфер обменаJAVA

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

Сообщение Anonymous »

Я использую класс Robot в Java для копирования строк из других программ. Это работает правильно, при условии, что я не устанавливаю содержимое буфера обмена программно перед попыткой копирования. Настройка содержимого буфера обмена не позволяет Java видеть изменения в буфере обмена, сделанные другими программами.
Скопированное содержимое фактически находится в буфере обмена. Это можно проверить, вставив в блокнот или другое текстовое окно. Однако получение содержимого буфера обмена в Java возвращает ранее установленное значение, а не скопированное значение.

Код: Выделить всё

try {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(new StringSelection("empty"), null);

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_CONTROL);

robot.delay(50);

robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_CONTROL);

String currentContents = clipboard.getContents(null).getTransferData(DataFlavor.stringFlavor).toString();
System.out.println(currentContents);
} catch (AWTException | UnsupportedFlavorException | IOException e) {
e.printStackTrace();
}
Версия Java — 17.0.6

Подробнее здесь: https://stackoverflow.com/questions/793 ... -clipboard
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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