![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Значения из регистров 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]хук не является обработчиком прерывания