Ошибка «Невозможно открыть системный буфер обмена», попытка установить системный буфер обмена не работает/включается и вJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка «Невозможно открыть системный буфер обмена», попытка установить системный буфер обмена не работает/включается и в

Сообщение Anonymous »

Я пишу программу, и в какой-то момент внутри моей программы я хочу наблюдать за клавиатурой, пока моя программа не имеет фокуса. Я использую банку под названием "JNativeHook", которую можно найти здесь http://code.google.com/p/jnativehook/

Что касается моей проблемы:
Эта банка работает и фиксирует каждое нажатие и отпускание клавиши. В моем коде я отслеживаю это: при каждом событии нажатия клавиши, если нажата клавиша «v» или Ctrl, я устанавливаю флаг для каждого, если оба события верны, пользователь вставляет. Когда пользователь первоначально вставляет, программа увеличивает счетчик до 1. При следующей вставке, если счетчик равен 1, он устанавливает текст системного буфера обмена на «Test Paste1», увеличивает счетчик, он делает это 3 раза, а в третий раз он модулирует счетчик на 3 и перезапускается. (Я планирую добавить элемент управления, чтобы при нажатии определенной комбинации keyListener был активен и пытался изменить системный буфер обмена; повторное нажатие отключает его)

Моя проблема заключается в том, что иногда он изменяет буфер обмена, и я действительно вставляю правильный текст, а иногда нет, и я получаю сообщение об ошибке

Exception in thread "pool-1-thread-135" java.lang.IllegalStateException: cannot open system clipboard


Поэтому иногда я могу открыть клавиатуру, а иногда нет. Я использую блокнот для тестирования. Итак, я запускаю свою программу, открываю блокнот, что-то копирую. Потом я вставляю, там написано, потом следующая вставка, иногда правильно, иногда нет, и следующая (2-я вставка), и следующая (3-я). Потом, если я пройду весь путь, все начнется заново.

Почему я иногда не могу получить доступ к буферу обмена, как я могу написать это, чтобы текст гарантированно попадал в буфер обмена?

Я полагаю, что поместил строку в цикл while и, пока нет исключений, продолжаю. Но я могу попасть в бесконечный цикл, если буфер обмена «недоступен» в течение x времени.

Продолжение:

http://stackoverflow.com/questions/1449 ... ling-logic


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

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

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

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

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

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

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