Recently my Microsoft wireless keyboard gave up the ghost; it never
worked very well in the first place. It was an older one I bought
perhaps 8 years ago at Costco. It always had a creaky Ctrl and
Shift key that did not always make a good contact leading to
frustrations, so good riddance. So I went to my cache of aging
computer hardware and found my old OmniKey Ultra keyboard as a stand-in and I had
forgotten how good this thing is.
It has clickety-clack keys that are just a delight to type on. I am able to type much
faster on it and with less strain. I also like the way it
has the Ctrl key in the right place instead of the dumb place PC
keyboards put it. Anyway I plugged it in and started using it, however, I do miss some of the keys on
late model keyboards to bring up the Start menu and such so I decided to remap some
of the keys using the Registry value:
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map
present in Windows at least since Windows XP. However, when I
looked at the binary value at this location there was a header, length,
a list of scan codes assignments and a footer which was hard to visually
interpret and besides it is also hard to determine the exact scancodes
to use for each key. Therefore, I quickly wrote a utility to remap keyboard
scan codes which you can download here: Download Keyboard Remapper.
Just unzip the file into a folder and run the executable from there (It assumes the
4.0 framework is installed already).
The application has two panes the one on the left shows the current
keyboard map (it will not have anything listed when first used until you
assign some key codes):
"Key to Alter" is the scancode of the key you wish to remap and
"Altered To" is the scancode that will be output when the key is
pressed. In the right pane you can assign key scancodes:
There are instructions on how to assign the keycodes above in this pane
not shown here. Basically, you can either hover the mouse caret
over the yellow box and type the key (after first selecting the desired
combobox so the little hand icon points to it) or select the key value
from the combobox dropdown list. Click the Submit button to add
the scancodes to the map. Then select "Save to Registry" from the
File menu to write the map to the registry but keep in mind you will
have to reboot your computer before the changes will take effect.
Some of the codes listed are from Microsoft Keyboards with extra buttons
for bringing up the browser or applications like word and multimedia
etc. I suspect that these will only work if you have the Microsoft
IntelliType drivers installed.
This utility will also be useful for developers to determine which keys
return a particular scancode. Notebook computers in particular
often have custom keys and you have no clue where to find something
like the Pause key etc.
In future I might add the facility to create macros for specific key
presses (bribes anyone?)