Почему я не могу получить данные буфера обмена в приложении java, запущенном как системный пользователь? - PullRequest
0 голосов
/ 24 января 2020

Я запускаю java приложение как системный пользователь (это происходит только в этом случае) при Windows 10.

Если я копирую текст из блокнота (или любого другого чистого текста) источник), затем я могу вставить его в свое приложение.

Если я копирую текст с веб-страницы из FireFox или Chrome, тогда мое приложение не видит его (ничего не происходит при Ctrl + v). Я попробовал JavaFx и AWT Toolkit. Набор инструментов JavaFx показал 2 формата данных: DataObject и cf0. Но оба они вернули нулевые данные. Как будто есть некоторые данные, которые java не может прочитать. И это почти то же самое поведение в случае AWT - ошибки и нули.

Наконец я нашел это приложение https://www.c3scripts.com/tutorials/msdos/paste.html, чтобы получить текст из буфера обмена с командной строкой (Runtime.getRuntime().exec("paste.exe")), и он напечатал неформатированный текст со страницы html, и это то, что я ожидал увидеть после Ctrl + V.

Если я запускаю приложение java как текущий пользователь, то копирую / вставляю страницы браузера html в мое приложение отлично работает.

...