Puedes usar un componente TApplicationEvents en el formulario principal de la aplicación.
Este componente informa de cambios a nivel de aplicación y entre ellos los mensajes que recibe.
Usa el evento OnMessage y capturas el evento WM_KEYUP
ejempo:
Código Delphi
[-]
procedure TForm1.appevnt1Message(var Msg: TMsg; var Handled: Boolean);
begin
Handled := False;
if (Msg.Message >= WM_KEYFIRST) and (Msg.Message <= WM_KEYLAST) then if (GetKeyState(VK_CONTROL) < 0) and (Msg.wParam = Ord('A')) then
begin
Handled := True;
if (Msg.message = WM_KEYUP) or (Msg.message = WM_SYSKEYUP) then ShowMessage('Hola mundo');
end;
end;