Ma fare un keylogger non vuole dire necessariamente fare qualcosa di malvagio.

Esempio, se vuoi fare un programma che premendo un tasto fa uno screenshot come fai senza un keylogger se il tuo form è minimizzato nella TrayBar e non è attivo???

O si fa un Hook della tastiera (non facile ma on line si trovano esempi) oppure si inserisce in un evento Timer la vecchia cara API GetAsyncKeyState() e per ogni tasto che interessa si controlla se è stato premuto e si agisce in conseguenza.
.