Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Keyboard hook, Не ловится событие отпускания кнопки 
:(
    Опции темы
acp
Дата 28.5.2003, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2




Устанавливаю хук на клавиатуру. Пытаюсь отловить событие по отпусканию кнопки


Код

test lParam, KF_UP
jz KeyDownLbl
;Процедура обработки
KeyDownLbl:



Не ловится... sad.gif
А так, например, работает


Код

test lParam, KF_UP
jnz KeyDownLbl
;Процедура обработки
KeyDownLbl:



причём "процедура обработки" выполняется 2-жды - по отпусканию и нажатию.
Из определения KF_UP, видно, что для установки того, что клавиша отпущена, 31 бит lParam'а должен быть установлен в 1. Почему он 0?

PM WWW ICQ   Вверх
acp
Дата 28.5.2003, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2




Вот чёрт, ерунда какая. Эту тему можно считать закрытой. Я разобрался с этой проблемой. lParam - 4-х байтовый, KF_UP - 2-х.
Вот только почему в masm'овских инклюдах KF_UP ообъявлен как 8000h, тогда как должен бы быть объявлен как 80000000h? Для экономии размера?

PM WWW ICQ   Вверх
miroslav
Дата 18.8.2003, 16:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











всё на много проще если работать напрямую с портами. из порта 60h получаешь скан коды нажатия и отжатия при чём скан код отжатия равен скан коду нажатия плюс 80h. т.е. различие только в 7-ом бите и рпзличается програмно при помоши одного прыжка:

js клавиша_отжата
;
;

клавиша_отжата:
;
;
  Вверх
acp
Дата 18.8.2003, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2




А в NT можно работать напрямую с портами?

PM WWW ICQ   Вверх
Baa
Дата 19.8.2003, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



acp, нет, нельзя.
з.ы. можно поставить драйвер (WinIO кажется звался...), который позволит это делать, но без ухищрений - нельзя.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
acp
Дата 23.8.2003, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



Цитата
нет, нельзя


А я знаю. smile.gif
В предыдущем сообщении просто не поставил смайлик, что бы оно воспринималось как ироничный вопрос.

PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.