As part of a utility I was writing recently I wanted to hook keyboard input. In particular I was interested in global hooks (ie input to any program, not just mine), and I needed to handle complex key inputs, for example
Ctrl-Alt-G, i.e. keys plus modifiers. The usual way to do this is to use
Looking around I quickly found a class over on CodeProject here. The
globalKeyboardHook class deals with the hooking, allows you to specify which keys you are interested in and disregards the rest. The events are raised using the delegate type
KeyEventArgs and has easily referenced properties for each of the modifier keys. So far so good.
However I found that the instance of
KeyEventArgs I was receiving in my event handler never had the modifier properties set to
true. Looking at the code for the class I couldn’t see anything there that would set the properties in the call back function for