Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Значения из регистров AH, AL при срабатывании hook'a [D6, NT4, Win2k, WinXP]


Alexis ©   (2004-10-03 11:41:00) 

Это кусочек кода из примера, приведенного в статье А.Павлова про установку hook'ов.
Ф-ция получает уведомление о нажании клавишы. Насколько знаю, при нажатии скан-код помещается в регистр AH, а ASCII-код в AL.
Я пытаюсь получить значения из регистров, например при нажатии , но MessageBox почему-то не выводится...
В чем может быть ошибка?

function KeyboardProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
ByteAH, ByteAL : Byte;
begin

 if code < 0 then
 begin
   Result:= CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
   Exit;
 end;

 {if (  ((lParam and KF_UP)=0) and (wParam>=65) and (wParam


DrPass   (2004-10-03 20:57:00) [1]


> можно ли при перехвате нажатия клавишы определить откуда-либо
> ее скан-код и ASCII-код, вырабатываемые клавиатурой?

А lparam в функцию передается для чего?


VMcL   (2004-10-03 19:53:00) [2]

>> GuAV ©  (03.10.04 14:36) [5]

Только перед возвратом. В процессе исполнения функции аккумулятор может использоваться как угодно.


GuAV   (2004-10-03 14:36:00) [3]


> Директива stdcall указывает на то, что параметры передаются
> через стек.

...А результат как раз через аккумулятор.


Alexis   (2004-10-03 13:13:00) [4]

2 VMcL-хорошо, тогда я поставлю вопрос так : можно ли при перехвате нажатия клавишы определить откуда-либо ее скан-код и ASCII-код, вырабатываемые клавиатурой?


VMcL   (2004-10-03 13:01:00) [5]

>> Alexis ©  (03.10.04 12:14) [2]

> нажатие клавишы ведь заносит в регистры скан-коды

С какого бадуна? Директива stdcall указывает на то, что параметры передаются через стек.


Alexis   (2004-10-03 12:14:00) [6]

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


Polevi   (2004-10-03 12:11:00) [7]

хук не является обработчиком прерывания


Наверх

Титульная страница Поиск, карта сайта Написать письмо