Hay una forma sencilla de hacer esto, sin necesidad de un Thread; Puedes utilizar el componente TApplicationEvents que viene con Delphi.
Coloca en tu formulario principal un componente de éstos (paleta addicional).
En el evento OnShortCut programa lo siguiente:
Código Delphi
[-]
var
ShiftState: TShiftState;
begin
ShiftState := KeyDataToShiftState(Msg.KeyData);
if (ShiftState = [ssCtrl]) and (Msg.CharCode = VK_F5) then begin
MessageDlg('CTRL+F5', mtInformation, [mbOK], 0);
end
else if (ShiftState = []) and (Msg.CharCode = VK_F5) then begin
MessageDlg('F5', mtInformation, [mbOK], 0);
end
else if ...
end;