No, no se trata de sustituirlo en una cadena

Algo asi como un mapeo de un codigo al otro: Hacer un programa que recibe todas las pulsaciones desde el S.O. y si es un punto lo cambia por la coma antes de que lo reciba el programa que tiene el foco.
En la prehistoria con el MSDOS no era muy dificil pero ahora ya no tengo idea de por donde empezar..
Lo quiero hacer en .NET, pero si sabeis otra manera tambien me interesa.
Un saludo y gracias por el tiempo,
Edu