Консультация № 55196
12.09.2006, 19:55
0.00 руб.
0 1 1
Доброго времени суток уважаемые эксперты-ассемблерщики.
Как сделать резидент в вин32, что бы например на нажатие клавиши выскакивал диалог, мол вы нажали такой-то кей.
Проблема в том как оставить процедуру резидентной в памяти в вин32.
Может кто знает, скажите.
Спасибо.

Обсуждение

давно
Советник
419
1012
12.09.2006, 20:32
общий
это ответ
Здравствуйте, ENS!

Для этого нужно перехватить клавиатурное прерывание через ловушки (Hooks).

Для этого пишем небольшую DLL, в неё помещаем функцию и устанавливаем обработчик на неё вот так:

;берём адрес подпрограммы KeyboardProc в этой DLL
Call GetProcAddress, esi, ofs szLLKeyboardHookProc
or eax, eax
jz @@Error

Call SetWindowsHookEx, WH_KEYBOARD_LL, eax, esi, NULL
or eax, eax
jz @@Error
mov [edi], eax

Удачи!
Форма ответа