используйте этот проект"Обработка глобальных мышиных и клавиатурных хуков в C #". Я использовал это раньше, и лично я всегда рекомендую это.
Как это использовать:
добавить ссылку на Gma.UserActivityMonitor
dll в ваш проект.
using Gma.UserActivityMonitor.GlobalEventProvider;
_globalEventProvider1 = new Gma.UserActivityMonitor.GlobalEventProvider();
this._globalEventProvider1.KeyDown += HookKeyDown;//to listen to key down
this._globalEventProvider1.KeyUp += HookKeyUp;//to listen to key down
this.globalEventProvider1.MouseDown += HookMouseDown;//to listen to mouse down
this.globalEventProvider1.MouseUp += HookMouseUp;//to listen to mouse up
//and a lot more...