Цитата:
Сообщение от M.A.D.M.A.N.
Нельзя такое делать, это платформозависимый тип.
Для неумеющих читать справку:
Код:
TFNHookProc = function (code: Integer; wparam: WPARAM; lparam: LPARAM): LRESULT stdcall;
В твоём случае будет так:
Код:
function KeyHookFunc(code: Integer; wparam: WPARAM; lparam: LPARAM): LRESULT stdcall;
|
спасибо за пояснение, теперь буду внимателен к этому.
только я смотрю код, когда он должен выводить сообщение:
Код:
function KeyHookFunc(code: Integer; wparam: WPARAM; lparam: LPARAM): LRESULT stdcall;
stdcall;
var
Kv: TKeyBoardState;
b: array[0..1] of char;
begin
Result:= 0;
if Code = HC_NOREMOVE then Exit;
Result:= CallNextHookEx(hK, Code, wparam, lparam);
if Code < 0 then Exit;
if Code = HC_ACTION then
begin
if ((lparam and (1 shl 30)) <> 0) then
{if not IsWindow(hA) then }begin
hM:= OpenFileMapping(FILE_MAP_WRITE, False, 'MyKeyMap');
Hr:= MapViewOfFile(hM, FILE_MAP_WRITE, 0, 0, 0);
if Hr <> nil then hA:= Hr.AppHnd;
end;
if ((lparam and (1 shl 30)) <> 0) then
begin
GetKeyboardState(Kv);
if ToAscii(wparam, lparam, Kv, b, 0) = 1 then
SendMessage(hA, WM_USER + 1753, Ord(b[0]), Code)
else
if wparam = 19 then SendMessage(hA, WM_USER + 1753, 0, 19);
end;
end;
end;
Признаюсь с хуками только начинаю разбираться, прошу сильно не давить на меня, а объяснить пожалуйста.