Rather than using the driver idea (which would work, but is yeuch), you could look at SetWindowsHookEx (WH_KEYBOARD/WH_KEYBOARD_LL, ...) which can be used for your purpose. Just a search in MSDN gives many examples. (And you can debug it more easily!) Iain.