Applikáció mentes leütött billentyü 3

Egy az előző applikációmentes leütött billentyüzetnél is egyszerübb megoldás

var
Form1: TForm1;
Hook:Integer;
MessageBuffer:TEventMsg;
implementation

{$R *.DFM}

function Play(Code: integer; wParam, lParam: Longint): Longint; stdcall;
begin
case Code of

HC_ACTION: begin
MessageBuffer:=PEventMsg(lParam)^;
if MessageBuffer.message=wm_KeyDown then
begin
Form1.caption:=chr(MessageBuffer.paraml);
Result:=0;
end;
end;
else begin
Result := CallNextHookEx(Hook, Code, wParam, lParam);
end;
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Hook:=SetWindowsHookEx(wh_journalrecord,play,HInstance,0);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnHookWindowsHookEx(Hook);
end;