by Michael S. Kaplan, published on 2007/11/28 03:01 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/11/28/6567810.aspx
I wish I was given the hardware budget so that every time a bug was reported in some hardware, I could get it, bring it in house, and figure out the bug.
I think that would be very cool. :-)
Over in the Suggestion Box, Mike asks:
For some months, the \ key on my Acer Tablet's UK-keyboard has not worked (it's between left shift and z, as expected). At first I thought the keypad was broken, but I had that replaced. It still doesn't work. So I tried to remap the keyboard using tools like MSKLC or KeyTweak. Interestingly when I test that key in these apps, it works perfectly.
I loaded the UK-Extended Keyboard layout into MSKLC, noting the following:
- even though the \ registers when I tapped it without a layout loaded,now it fails when I do have a UK (extended or not) layout loaded
- if I "Test Keyboard Layout" with UK-Extended then the key works (in both shift states)
- The Validate Layout log says : " WARNING: '\' defined on OEM_5 (Base) but not defined elsewhere. This key may not be present on all keyboards."
I'm stumped. Why isn't Windows (XP SP2) paying attention to this key? For now I have remapped my F9 key to act as my \ using KeyTweak.
Now I will start by saying that I cannot reproduce the bug in question on any of my hardware running XP SP2 or Server 2003 or XP x64 or Server 2003 x64 or Vistas.
(Though both #2 and #3 above are by design and expected!)
But I believe there is a genuine issue here, and the fact that I have no Acer Tablet with a UK keyboard layout to verify anything on is not going to dissuade me from taking about the issue a bit here, in the hopes that either Mike or someone else with an XP SP2 on an Acer Laptop with a UK keyboard layout (one containing a 102 key between the Left Shift and the Z) could maybe try out....
First we'll look at the key in MSKLC with that layout loaded up:
and then we will look at the key in the "All Shift States" view:
Now MSKLC is very scan-code anchored, pretty much relying on that good old SCAN CODE 56 to identify where the 102 key is (by using the map inside the layout to map the scan code to the virtual key), and the VK value to identify the keystroke being hit.
And don't ask me why this keyboard decided not to use VK_OEM_102 for the freaking key, that just seems wrong to me.
So the first and most important thing to do is to see what happens when you use the key outside of MSKLC.
Maybe we could take the code from Handling [Unicode] input in the console and use it to type that 102 key and see what the results are -- both scan code and virtual key. Make sure you have the UK extended keyboard selected when you try it.
Because it seems like there might be some kind of hardware issue, with the key on this particular keyboard not always consistently working as one would expect, if the key does not appear to work correctly.
Taking a step back and looking at all of the keyboards built into Windows, the only ones that do not use VK_OEM_102 here are the UK Extended keyboard and the three Inuktitut keyboards. Makes me wonder if that is connected to the problem, too....
So maybe it is the fact that the key is not mapped to the VK_OEM_102 key -- perhaps the answer is to save the file to a .KLC file,and change the following line:
56 OEM_5 0 005c 007c -1 -1 -1 // REVERSE SOLIDUS, VERTICAL LINE, <none>, <none>, <none>
56 OEM_102 0 005c 007c -1 -1 -1 // REVERSE SOLIDUS, VERTICAL LINE, <none>, <none>, <none>
and build that one and install it to see if that makes a difference....
Anyone able to repro the bug on their hardware want to give this a try? I am very curious about this, and wishing there was an easy way to find out who within Microsoft might have this hardware to try things out!
This post brought to you by | (U+007c, a.k.a. VERTICAL LINE)
Jonathan Wilson on 28 Nov 2007 6:25 AM:
A program that lets you press a key and displays the raw scan code or VK_xxx code for it would help in this situation IMO.
Perhaps for the next version of MSKLC it can be added :)
Michael S. Kaplan on 28 Nov 2007 10:27 AM:
Of course that is what the code in that other article provides. :-)
Jeroen Ruigrok van der Werven on 29 Nov 2007 9:58 AM:
I am surprised your hardware quality assurance labs do not have any configuration management database(s) for registering specific hardware for the developers to track bugs against.
richardfen on 11 Aug 2008 2:45 PM:
I have the same exact problem with the same exact key when using the Microsoft keyboard lahout creator 1.4. Furthermore, it seems that all the bottom row keys have been shifted left one into the "z" position (when I press "z" I get "x". Has anyone resolved this? Thanks for your help.
Michael S. Kaplan on 11 Aug 2008 3:37 PM:
That sounds like the keyboard layout you are using does match --either the one on your hardware or the one you are trying to build.
richardfen on 11 Aug 2008 6:46 PM:
I solved this problem in the following manner:
I noticed that the layout on the third row as shown by the MS Keyboard Creator had a blank key on the far right. I therefore re-defined all keys on the third row so that they were shifted to the right one key. This worked.
go to newer or older post, or back to index or month or day