Здравствуйте! Пожалуйста помогите разобраться в коде данной функции, не могу его переделать чтоб хук реагировал только при отпускании (KeyUP) клавиши:
Код | function KeyHookFunc(Code, VirtualKey, KeyStroke: integer): LRESULT; stdcall; var msgl: PEVENTMSG; begin Result:=0; if Code=HC_NOREMOVE then Exit; Result:=CallNextHookEx(hK,Code,VirtualKey,KeyStroke); if Code<0 then Exit; if (Code=HC_ACTION) then begin msgl := Pointer(KeyStroke); // Без этих двух строчек функция работает if msgl.message = WM_KEYUP then // идеальною, но надо чтоб хук реагировал только begin // на отпускание клавиш. П О М О Г И Т Е ! if((KeyStroke and (1 shl 30))<>0) then if not IsWindow(hA) then begin hM:=OpenFileMapping(FILE_MAP_WRITE,False,'MyHookMap'); Hr:=MapViewOfFile(hM,FILE_MAP_WRITE,0,0,0); if Hr<>nil then hA:=Hr.AppHnd; end; if ((KeyStroke and (1 shl 30))<>0) then begin SendMessage(hA, WM_USER+2008, VirtualKey , KeyStroke {GetFocus}); end; end; end; end;
|
|