Du müsstest bei der AppInit Methode dann beispielsweise mit inline Hooks auf GetMessage / PeekMessage arbeiten. Denke mal da versagt einfach das SetWindowHookEx. Über die genannten APIs geht es auf jeden Fall. Das habe ich mal benutzt um eine
DirectX GUI in ein vorhandenes Programm zu integrieren und dann Maus und Tastatureingaben abgefangen.