You talking about capturing keystroke and logging what is typed and in which application they are typed? Since your requirements include loggin WHICH application recieves the keyboard message, you've added a new layer of complexity to your app. You can't simply use just the keyboard hooks function anymore since you will never receive any notification of where the message is going. To get that, you also have to use the CBTProc callback function (or hook) to keep track of the window that's currently activated. You have to get the name of the window using the window handle that's passed in during certain events that get sent through your CBTProc procedure. RageInTheMachine9532