Я использую класс 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();
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -clipboard
Java - получение из буфера обмена не работает после установки в буфер обмена ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Java - получение из буфера обмена не работает после установки в буфер обмена
Anonymous » » в форуме JAVA - 0 Ответы
- 54 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему я не могу скопировать текст в буфер обмена, используя API буфера обмена?
Anonymous » » в форуме Html - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему я не могу скопировать текст в буфер обмена, используя API буфера обмена?
Anonymous » » в форуме Javascript - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-