Applikáció mentes lenyomott billentyü 1

Egy lenyomott gombot szeretnénk észlelni, függetlenül attól, hogy mindegy, milyen applikációban van a windows? Mit is csináltunk? Ugyebár minden karakternek van chr kódja. A '2'-esnek a chr(50). Innentől minden világos, a dolognak csak az a hátulütője, hogy ahány billentyüt szeretnénk figyelni, annyiszor kell a GetAsyncKeyState( -utasítást megismételni.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Odd(GetAsyncKeyState(50 )) <> false then color:=clred;
end;