Since you're using the Windows API (I'd hope so since you're in the Windows Programming Forum), look up handling of the Windows Virtual Keys. I believe this is exactly what you want. It will almost simulate a keyboard hook, but not quite as effective. On the plus side, it can turn the display echo off so you can output whatever you want for each key (Think of an on screen Virtual Keyboard) or handle each one as it's own event. If you know threading, you can have one thread handle the keyboard events while the other thread "responds" to the events.