Я пишу программу, и в какой-то момент внутри моей программы я хочу наблюдать за клавиатурой, пока моя программа не имеет фокуса. Я использую банку под названием "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
Ошибка «Невозможно открыть системный буфер обмена», попытка установить системный буфер обмена не работает/включается и в ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Java - получение из буфера обмена не работает после установки в буфер обмена
Anonymous » » в форуме JAVA - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Java - получение из буфера обмена не работает после установки в буфер обмена
Anonymous » » в форуме JAVA - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-