meteorlake
@meteorlake
Кодю код, админю домашний сервер с фильмами

Как предотвратить повторные нажатия клавиш на программном уровне?

В связи с повышенной влажностью моя клавиатура стала делать повторные нажатия клавиш. К примеру нажав какую либо букву она нажимается дважды, изредка трижды. Денег на покупку такой же клавиатуры нет, а к другой я буду долго привыкать. Текста пишу много и вопрос нужно как то решить. Использую линукс с X11. Под линукс никогда не кодил, только веб.

Я так полагаю, что нужно контроллировать ввод с клавиатуры, замерять время между нажатиями и предотвращать повторные символы.

Попробовал на С++ почитать файл ввода с клавиатуры (у меня /dev/input/event3), но каждый раз коды разные и как понять, что нажата одна и та же клавиша не понятно.

Попробовал python с библиотекой pyxhook и нажатия клавиш обрабатываются(ловяттся) хорошо, но как предотвратить повторное?

Поймите меня правильно, я не прошу написать за меня решение. Подскажите какой язык копать и в трёх словах, как это должно работать и какие расширения мне понадобятся
  • Вопрос задан
  • 212 просмотров
Пригласить эксперта
Ответы на вопрос 5
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Подскажите какой язык копать и в трёх словах, как это должно работать и какие расширения мне понадобятся

Русский. Купите новую клаву.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
В связи с повышенной влажностью моя клавиатура стала делать повторные нажатия клавиш. К примеру нажав какую либо букву она нажимается дважды, изредка трижды. Денег на покупку такой же клавиатуры нет, а к другой я буду долго привыкать.

В науке и технике это явление называется дребезг контакта. Борются с ним по разному. Обычно ставят конденсатор параллельно каждой клавише. Кроме того клавиатурный контроллер который стоит позади клавиш и который формирует команды на USB также содержит некий интеллект фильтрации.

Решать эту задачу программно - я не советую. Ты рискуешь потерять - больше информации например для приложений которые фиксируют не клик а DOWN и UP по отдельности.

Вобщем верно говорят. Купи клавиатуру. Потому что трата времени и мозго-топлива на фиксацию этого аппаратного дефекта займет у тебя слишком много времени.
Ответ написан
Комментировать
phaggi
@phaggi
лужу, паяю, ЭВМы починяю
Клавиатуру отнести в сервис. Почистить контакты, возможно промыть изопропиловым спиртом, возможно даже в ультразвуковой ванне.
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Вообще-то это настраивается в BIOS, там есть параметр паузы (минимальная 0.25 секунды), после которой принимается второе и последующие "срабатывания" зажатой клавиши. Попробуйте увеличить.
Ответ написан
Lord_of_Rings
@Lord_of_Rings
Python developer
Самый лучший вариант - купить новую клавиатуру (и не обязательно за 200 €)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы