Как предотвратить повторные нажатия клавиш на программном уровне?
В связи с повышенной влажностью моя клавиатура стала делать повторные нажатия клавиш. К примеру нажав какую либо букву она нажимается дважды, изредка трижды. Денег на покупку такой же клавиатуры нет, а к другой я буду долго привыкать. Текста пишу много и вопрос нужно как то решить. Использую линукс с X11. Под линукс никогда не кодил, только веб.
Я так полагаю, что нужно контроллировать ввод с клавиатуры, замерять время между нажатиями и предотвращать повторные символы.
Попробовал на С++ почитать файл ввода с клавиатуры (у меня /dev/input/event3), но каждый раз коды разные и как понять, что нажата одна и та же клавиша не понятно.
Попробовал python с библиотекой pyxhook и нажатия клавиш обрабатываются(ловяттся) хорошо, но как предотвратить повторное?
Поймите меня правильно, я не прошу написать за меня решение. Подскажите какой язык копать и в трёх словах, как это должно работать и какие расширения мне понадобятся
В связи с повышенной влажностью моя клавиатура стала делать повторные нажатия клавиш. К примеру нажав какую либо букву она нажимается дважды, изредка трижды. Денег на покупку такой же клавиатуры нет, а к другой я буду долго привыкать.
В науке и технике это явление называется дребезг контакта. Борются с ним по разному. Обычно ставят конденсатор параллельно каждой клавише. Кроме того клавиатурный контроллер который стоит позади клавиш и который формирует команды на USB также содержит некий интеллект фильтрации.
Решать эту задачу программно - я не советую. Ты рискуешь потерять - больше информации например для приложений которые фиксируют не клик а DOWN и UP по отдельности.
Вобщем верно говорят. Купи клавиатуру. Потому что трата времени и мозго-топлива на фиксацию этого аппаратного дефекта займет у тебя слишком много времени.
Чем больше знаю, тем лучше понимаю, как мало знаю.
Вообще-то это настраивается в BIOS, там есть параметр паузы (минимальная 0.25 секунды), после которой принимается второе и последующие "срабатывания" зажатой клавиши. Попробуйте увеличить.
AUser0, понятно, нет такой опции у меня. Попробовал в линуксе воспользоваться какой то встроенной опцией в Accessibility->Repeat Keys->Delay. Установил на максимум и не помогло совсем