| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Keyboard hook |
| Автор: acp 28.5.2003, 16:17 | ||||
| Устанавливаю хук на клавиатуру. Пытаюсь отловить событие по отпусканию кнопки
Не ловится... А так, например, работает
причём "процедура обработки" выполняется 2-жды - по отпусканию и нажатию. Из определения KF_UP, видно, что для установки того, что клавиша отпущена, 31 бит lParam'а должен быть установлен в 1. Почему он 0? |
| Автор: acp 28.5.2003, 19:01 |
| Вот чёрт, ерунда какая. Эту тему можно считать закрытой. Я разобрался с этой проблемой. lParam - 4-х байтовый, KF_UP - 2-х. Вот только почему в masm'овских инклюдах KF_UP ообъявлен как 8000h, тогда как должен бы быть объявлен как 80000000h? Для экономии размера? |
| Автор: miroslav 18.8.2003, 16:19 |
| всё на много проще если работать напрямую с портами. из порта 60h получаешь скан коды нажатия и отжатия при чём скан код отжатия равен скан коду нажатия плюс 80h. т.е. различие только в 7-ом бите и рпзличается програмно при помоши одного прыжка: js клавиша_отжата ; ; клавиша_отжата: ; ; |
| Автор: acp 18.8.2003, 22:28 |
| А в NT можно работать напрямую с портами? |
| Автор: Baa 19.8.2003, 08:51 |
| acp, нет, нельзя. з.ы. можно поставить драйвер (WinIO кажется звался...), который позволит это делать, но без ухищрений - нельзя. |
| Автор: acp 23.8.2003, 22:00 | ||
А я знаю. В предыдущем сообщении просто не поставил смайлик, что бы оно воспринималось как ироничный вопрос. |