ufff un keylogger???....mmmm....yo tengo una clase en vb.net (que era de C#) que la saque, pero no recuerdo de done
si lo quieres en C#, hay muchos ejemplos rondando por internet, tan malos como buenos (o sea, leyendo teclas desde un timer, o llendo a nivel bajo hookeando las teclas y "bloqueandolas")
Yo lo necesite para una aplicacion, y la verdad funciona
Si no encuentras NADA, te recomiendo que empiezes por esto (jeje....el ingles abunda en todos lados, asi que tienes que saber para leer esto)
http://blogs.msdn.com/toub/archive/2006/05/03/589423.aspxes algo basico pero bueno, simple para un keylogger.
La clase que yo tengo prepara todo para eventos KeyDown, KeyPress y KeyUp como si fuese las del form
, aunque para bloquear las teclas ....eso hay que hacerlo en la misma clase (es algo medio lioso, pero funciona igual :E)
Espero que te sirva