joystick events under Windows - problem AND solution

HI all,

For a few days now I’ve been trying to figure out why my app can’t receive joystick events under Windows XP and yet it works beautifully under Linux and MacOS. The events I was trying to bind are just EVT_JOY_BUTTON_DOWN and EVT_JOY_BUTTON_UP. Nothing special. The wx.Joystick.SetCapture would return “True” meaning that the event redirection was successful. The wx.Joystick demo also wouldn’t work correctly. The joystick was recognized by Windows just fine and it would work correctly if I poll for the events with GetButtonState and similar methods.

Well, here’s the solutions. I don’t know how and why it works but it does:
(1) Open Control Panel --> Game Controllers
(2) Click Advanced
(3) Select a preferred device (i.e. make sure it’s not “none”)

I don’t know how that makes any difference or what that actually does in Windows but here it is.
Does this sound like something that’s wxPython wiki worthy?

Ratko