Förmodligen behöver man använa API:t.
Ja, det måste man. I grova drag:
1. Du skapar en systemglobal tangentbords-hook med anropet:
SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, (HINSTANCE)hInstance, 0);
KeyboardProc är en funktion som du skriver själv och till vilken Windows kommer att skicka alla tangentnedtryckningar.
2. Kruxet är sen att SetWindowsHookEx måste anropas inne ifrån en Windows-dll ifall det är frågan om en global hook (anges av nollan på slutet). Du blir alltså tvungen att skriva en dll som du sen anropar från ditt Delphi-program.
Om du har tillgång till nån version av Visual C++ så har jag nog färdig C++-kod för själva dll:en som du kan få.