|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.09.2016, 20:33 | #1 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Почему так получается?
Собственно реализовал алгоритм антизалипания ЛКМ и ПКМ. То есть чтобы при зажатии ЛКМ или ПКМ это вызывало одно действие, а не куча действий сразу. Реализовал так:
Код:
Здесь я одновременно с ЛКМ и ПКМ еще попытался тоже самое сделать с клавишей f1 клавиатуры. Так вот с ЛКМ и ПКМ все нормально, а с f1 не работает, происходит многократное повторение действия. Т. е . если у меня нету какой то ошибки то попросту функция GetAsyncKeyState(vk_f1) отличается от GetAsyncKeyState(VK_LBUTTON) и GetAsyncKeyState(VK_RBUTTON) В чем подвох? Последний раз редактировалось Illusiony; 05.09.2016 в 20:35. |
05.09.2016, 21:22 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в MSDN советуют не полагаться на значение первого бита, он только для совместимости.
ваше приложение активно хоть в момент теста? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
05.09.2016, 22:03 | #3 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
В смысле? у меня работают ЛКМ и ПКМ так, а f1 нет. Я отслеживаю клики над другим приложением ( не Delphi). Соответственно окно того приложения и активно.
|
05.09.2016, 22:17 | #4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
залогируйте значение результата для клавиши, похоже мышь работает всегда, но согласно MSDN, она не годится вне своего приложения:
https://msdn.microsoft.com/ru-ru/lib...or=-2147217396 Цитата:
для перехвата есть иные методы(и LowLevel хук не требует админских прав и не требует DLL) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
07.09.2016, 21:54 | #5 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Пепел Феникса, возможно я не так высказался:
Код:
В общем решил проблему довольно просто, но и некрасиво. Однако мне сгодится: В общем алгоритм примерно такой: - имеем два таймера с низким интервалом и запущены оба сразу: Код:
Код:
|
07.09.2016, 22:06 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вы имеете в виду при удержании?
так ведь логично Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
07.09.2016, 22:11 | #7 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему так получается 1,1 mod 1 = 0,099999 | TRIZER | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 16.08.2011 01:23 |
так и не получается сделать вход | ilushka2306 | PHP | 3 | 14.05.2011 14:00 |
Почему-то не получается.... | lionman | Помощь студентам | 7 | 07.12.2008 11:35 |