I'm using my ideapad S10-3 to do small scale software engineering while I travel and am having issues with my keyboard.
In windows everything works fine and I can type correctly. However when working in Flash and Visual C++, when my keyboard callbacks fire for a keypress and a key release I get two different numbers:
For example the keyDown will recieve 118 'v' when I push the key down and the keyUp will receive 48 '0'. if I continue to press the same key and moniter the variable it changes every press with no pattern.
At first I thought it was Flash, but I have the same problem now that I am working in Visual C++. Could this be a driver issue? I had my keyboard options set to support US(english layout and Spanish(Spain) layouts at first and have set it back to only english now, but no luck.
It turns out that these symptoms were caused by some software in the preload. Lenovo automatically installs anti-key logging software on the computer that "encrypts" the key events.
Uninstalling or disabling this program (Guarded ID) fixes the problem. To uninstall:
Start-> control panel -> add/remove programs -> select GuardedID and then remove/delete
As a problem isolation aid, boot to quickstart and open a web browser and type in a URL that you know. If the characters appear as expected there, the hardware is working correctly. Check for the GuardedID program as noted above and uninstall it. GuardedID may initially work transparently as part of the preload, but interaction with other programs that may be installed could trigger these symptoms.