Non è affatto una banalità.

Potresti risolvere impostando un hook globale di tipo CBTProc (tramite la API SetWindowHookEx).

Ci sono molte cose da tenere in considerazione ... puoi partire a documentarti da

https://msdn.microsoft.com/en-us/library/windows/desktop/ms644977(v=vs.85).aspx