Ive seen many solutions online but none does exactly what I want. What is the best/simplest way to get any keys pressed in a given process (not my console applicaton) while my application is running in background. I dont need the modifiers or anything.
Share
If you don’t particularly care which process the keys are being pressed in the easiest method would be to call GetAsyncKeyState. It’s rather limited though as it does not hook the keyboard and requires you to call it continuously. The best approach in my opinion is to hook the keyboard.
Using SetWindowsHookEx you can actually explicitly specify the identifier of the thread with which the hook procedure is to be associated so you can hook keys for a specific process (see dwThreadId).
Here’s a class that you can use (originally found on a Micrsoft blog but I cannot seem to find the authors name at the moment!)
Implementation via Console Application: