Многократное нажатие клавиши при ее зажатии как сделать

Добавил пользователь Владимир З.
Обновлено: 04.09.2024

Кто-нибудь подскажет как можно решить данную проблему.

Имеется приложение вывода графика ститистики.
К примеру имеется горячая клавиша F5, которая вызывает
функцию рисования графика на канве формы.
Так вот если я нажимаю 4 раза или 6 раз подряд, или просто держу
клавишу F5 в течение нескольких секунд, то функция рисования графика рисует этот график многократно 4,6 или более раз без остановки. Нажатие клавиши F2 перехватывает ApplicationEvents.

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

Может быть есть такая функция, которая обнуляет многократное нажатие клавиши F5?

совершенно верно подметил V86
ну или сделай рисование по WM_KEYUP, хотя зачем ты клавишу в AppEvents перехватываешь не пойму.

Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey


Почему появляется двойной клик

Второй тип ошибки – сбой в драйвере. Её очень просто убрать. Если проблема касается этого пункта, то вы и дальше сможете без проблем пользоваться мышкой.


Как отключить двойной клик

Существует несколько вариантов, чтобы убрать неполадку. Решение зависит от причины, которая вызвала проблему. Я рекомендую проверить все способы, начиная от самых простых. Возможно, вы решите проблему за несколько минут.

Вариант 1: простые решения

Не следует пренебрегать самыми простыми действиями. Они способны убрать проблему – в подавляющем числе случаев. Я предлагаю выполнить такие операции:


Вариант 2: с помощью настроек

Ответ, почему на мышке срабатывает двойной клик, может скрываться в настройках. Обычно эти параметры можно выставить либо в свойствах мыши, либо в настройках папок. Проверить их следует так:



Вариант 3: переустановка драйвера


Вариант 4: установить специальную утилиту

Среди доступных утилит – MouseFix, Left Mouse Button Fix и подобные. Я советую почитать о них отзывы или поискать другое ПО в интернете. Главное условие – надёжность, чтобы вы случайно не установили на свой компьютер вирус. Смотрите по отзывам к программе и по сайту, на котором её скачиваете.


Вариант 5: самостоятельный ремонт

Этот вариант предполагает разную степень сложности. Возможно, придётся полностью разобрать мышь, отогнуть пружину микропереключателя и собрать её заново. А может быть и вариант, когда нужно заняться пайкой, учитывая электрическую схему устройства. Инструкции и примеры есть в интернете. Я рекомендую заниматься самостоятельным ремонтом только в том случае, если вы знаете, что делаете, или если хотите поэкспериментировать, а само устройство вам не так важно.


Вариант 6: обратиться в сервисный центр

Если предыдущие пункты не помогли, то необходимо отдать девайс в ремонт. Если мышка служит вам более 5 лет, то подумайте о её полной замене. Но в любом случае, в хорошем сервисном центре вам могут дать ценные советы и починить девайс.

Как видите, если мышка нажимает 2 раза вместо одного, то эту проблему можно устранить. Когда не подошли простые методы, а разбираться со сложными нет времени или желания, то лучше обратиться в сервисный центр. Помните, что любая мышка будет изнашиваться через годы использования. Всё зависит от её первоначального качества. Надеюсь, данная статья поможет вам убрать все проблемы с устройством и вновь наслаждаться его работой.

Как убрать двойной клик на мышке : Один комментарий

друзья,у меня такая проблема возникла на мышке оклик,проблема в микровыключателе,но не обязательно менять,просто разбираете мышь, набираете в шприц масло для автомобильного двигателя , желательно синтетику, и иголкой вводите его внутрь, под саму кнопочку,потом несколько раз покликайте,окись растворится и вперед. кстати так же избавился с плохой сработкой выключателя света в квартире когда поставил светодиодные лампы,окись после простых образовалась.

Доброго времени суток, Геймдев!
Я столкнулся с проблемой адаптации управления джойстиком к одной игре, и прошу вашего совета.
Эмулятор клавиатуры для джойстика, который я использовал ранее - JoyToKey, имел существенный недостаток - там не было возможности эмулировать "зажатие" клавишы (не многократное нажатие, а именно зажатие). Таким образом, даже отправляя до 30 эмуляций нажатии на клавишу в секунду, игра обрабатывала их все отдельно, и вместо слитного движения персонажа, получались много маленьких рывков.
Я попробовал составить собственный маленький пример эмуляции нажатия клавишы с помощью WinAPI-шного SendInput. Там, если помните, есть флаг, происходит ли событие "нажатия" или "отжатия" указанной клавиши. Таким образом, я надеялся, что отправив событие "нажатия" клавиши, но не отправляя события "отжатия" клавиши, я введу её в состояние "зажатости" - но, как вы догадались, ничего из этого не вышло, клавиша отжималась самостоятельно.
Мне думается, что Windows сам периодично опрашивает состояние кнопок клавиатуры, тем самым возвращая эмуляционно "зажатую" кнопку в исходное состояние.
Итого, вот мой вопрос: как же мне создать эмуляцию полноценного зажатия кнопки? Или хотя бы, в какую сторону следует копать?

То есть даже при использовании sendInput клавиша каким-то образом "отжимается"? Это проверенно или догадки? Может дело не в том, что ты пишешь а в обработке клавиш принимающей программой?

Я проверил работу SendInput, написав маленький пример (в C++ Builder), отправляющий нажатие клавиши VK_TAB. Если бы она осталась зажатой, то фокус должен был прыгать между контролами, которые я разместил на форме. Однако по отправке SendInput фокус смещается всего 1 раз, аналогично одному нажатию на TAB

Ты наверно не понимаешь что такое "зажатая" клавиша. На самом деле когда ты держишь её нажатой приходит целая куча нажатий и ни одного отпускания.

Sergio
> Ты наверно не понимаешь что такое "зажатая" клавиша. На самом деле когда ты
> держишь её нажатой приходит целая куча нажатий и ни одного отпускания.
Теперь всё встаёт на свои места!
В самом деле, попробовал сейчас цикличный SendInput нажатия кнопки с интервалом в 50мс - игра обработала его как настоящую "зажатость" :)
Видимо, проблема эмулятора JoyToKey в том, что даже в режиме отправки многократных нажатий за клик, каждую отдельное нажатие сопровождалось и сигналом отпускания кнопки..
Теперь дело за малым - дописать эмулятор. Спасибо за подсказку!

Часто хочется автоматизировать что-то так, чтобы посылать нажатия и клики прямо в свёрнутое окно. Пришло время сделать это, на AutoHotkey.

Что тут происходит?

Основная логика на F4, то есть в clicker_heroes_background_spam() .

Чтобы это всё работало хорошо и никак не пересекалось с остальным взаимодействием с компьютером, используются некоторые техники.

Для примера, вот так я пользовался в World of Warcraft, чтобы просто держать кнопку скила (1, файрбол на маге) и чтобы он сам кастовался. Когда в нужный момент мне было необходимо моментально скастовать моментальный файрбласт (хоткей Alt+1), я просто не отпуская 1 до-зажимал Alt, режим не обращает внимания на модификаторы, поэтому теперь в игру начинал прилетать зажатый хардверно Alt и тот же самый спам 1, спел кастовался. Очень удобно. Топ дпс все дела, просто зажав и не отпуская одну кнопку ) Там ещё макросы внутри игры помогали, чтобы, если надо, в эту одну кнопку более-менее умную ротацию заклинаний встроить.

Читайте также: