Q:

Better keyboard input for XNA games

Default XNA input doesn't provide an event handler that may call some method during frame processing (between update calls, immediately when a key is pressed).
I tried using Nuclex.Input, but it has some flaws — keys like F10, Alt and Pause do not fire up assigned events. Some of those keys appear in GetKeyboard().GetState().GetPressedKeys() list, but some of them don't, which is unacceptable for making shortcuts.
I would be happy if there was a way to make the XNA's default input manager to work with events, but I haven't seen anyone say it's possible. So I'm probably looking for some other input manager that can give me any key press there can be with press/release event handler.
Or maybe there is some way to avoid using third-party library by using windows hooks like firing up handler event for any key press/release?
Or this whole XNA input way is whacked up and higher class game engines use a totally different approach?

I see everybody's been using XInput for the last few years.

A:

For now I have resorted to using Nuclex.Input for my XNA game, but I'm still looking for better alternatives.
Some problems with Nuclex.Input are that it doesn't differentiate between left and right Shift or Ctrl buttons and doesn't detect some keys (including F10, left Alt, PrintScreen and Pause).

