Keyboard Hook using Platform Invocation Services (PInvoke)