Capturar e enviar entrada de teclado / mouse em c #

Eu estou procurando uma maneira de enviar e receber informações do teclado, independentemente de qual aplicativo tem foco. Eu lembro de volta na faculdade, vendo uma apresentação sobre uma antiga API do Windows que permite alterar a posição do cursor e enviar cliques da direita e tal.

Além User32.dll existe uma maneira de fazer isso com o framework .net?

questionAnswers(2)

yourAnswerToTheQuestion