BleepingComputer Review:

KeyTweak allows you to remap any key on your keyboard to any other key, or even to disable keys altogether. It does this by leveraging Windows' built-in key-remapping ability, but without the need to manually edit the Registry.

KeyTweak also includes "Teach Mode" allowing you to map keys to other keys simply by pressing the desired keys when promted.

Product Description from Travis Krumsick:

KeyTweak is a simple utility that allows users to redefine their keyboard input signals. The functionality is made possible by a registry value first documented in Windows 2000, but also present in Windows NT 4.0. and included in XP, Vista and Windows 7.

How Does It Work? Simply put, KeyTweak is just a front-end interface for editing a particular registry key. Microsoft did the low-level heavy lifting by creating this registry key. KeyTweak makes the editing of it a little less geeky.

Your keyboard communicates with your computer typically through a PS/2 port or a USB port. The data sent by your keyboard is referred to as Scan Codes. When you press a key, the “make” scan code for that key is received by your computer’s i8042 controller chip. When you release a key, the “break” scan code is sent.

Prior to Windows 2000, device drivers had to be written to modify scan codes. Happily, Microsoft incorporated this feature into their operating system, thereby allowing fools like you and me to hack our registry and change the values to anything we see fit. The only downside is that the system has to be rebooted to take affect.

The registry key to which I’m referring is HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout and the binary value in that key is titled “Scancode Map”. If you forget this, don’t worry, just click the Show Me The Raw Map button to see what I’m talking about. Now, I don’t recommend registry hacking to anyone – that’s why I wrote this utility. If you don’t know what I’ve been talking about in this section, it’s probably better left forgotten.

Features

Simple interface

Ability to Teach remapping by pressing the keys to be remapped

Easy-to-read lists of all current and pending re-mappings

Implementation of Specialty Keys support for certain keyboards

Remove all re-mappings with a single button

Enable/disable annoying keys

Displays what exactly is written to the “Scancode Map” registry value and how to interpret its binary data

User warnings help ensure Ctrl-Alt-Delete sequence is maintained

Limitations

Keytweak cannot combine keystrokes. You cannot merge Ctrl-Alt-Delete into a single key for example, nor can you map Alt+num key sequences into a single key. The reason for this is because each keystroke generates a scancode and multiple scancodes are typically combined into a single keycode by the keyboard processor. The keycode combinations take place downstream of KeyTweak’s functionality.

Keytweak cannot affect the Fn key of most laptops. This because the Fn key itself does not generate a scancode, but rather modifies the scancode of other keys on the keyboard. The scancode modifications take place upstream of KeyTweak’s functionality.

The Pause/Break key cannot be remapped. This special key generates a 3-byte scancode, but the Scancode Map registry entry only allows for the remapping of 2-byte scancodes.

KeyTweak edits are global. That is, you can’t specify user-specific, application-specific, or keyboard-specific remappings. The remapping affects all users, allapplications, and all keyboards and all users on the machine. Note that some games may perform their own keyboard remapping. These could supersede or be applied in addition to KeyTweak remappings.

Rebooting is required. The remapping is read by the operating system upon start up. Any change to the remapping will require a reboot.