Windows – How to uninstall a keyboard that Microsoft Keyboard Layout Creator created

keyboard-layoutmicrosoft-klcwindows xp

I used the Microsoft Keyboard Layout Creator 1.4 to create a keyboard layout which I was able to successfully install. The problem is that I now want to update it, but I can't uninstall the old one.

The help file says:

The .MSI is not written with 'Upgrade'
or other such scenarios in mind —
simplicity was the goal. Therefore, to
upgrade, you would simply uninstall
the old keyboard and install the new
one in its place.

it also says:

Figure 4: Maintenance mode lets you
repair or remove the keyboard layout.

I followed the exact steps it shows and it even said that it has been successfully removed. However, when I go into the language settings, I still see it in there and when I try to make my new keyboard file, it says that there is already a layout with the same name defined. I tried restarting the computer multiple times. Reinstalling then uninstalling. Nothing works.

How can I remove the keyboard from the system so that it doesn't appear in Control Panel > Regional and Language Options > Languages > Details… > Add… > Keyboard layout/IME: ?

Best Answer

Normally you can uninstall a keyboard using the following method:

  1. Go to add/remove programs
  2. Find the keyboard, it should be the same name as the Description field of the project's properties in Keyboard Layout Creator.
  3. Press Modify
  4. Choose Remove the keyboard layout

The problem was that I uninstalled it incorrectly and I had to manually remove it.

If you need to manually remove it, here's how I did it:

  1. Remove the keyboard from the Language and Regional settings:
    1. Control Panel > Regional and Language Options > Languages > Details...
    2. If it exists as one of the installed services, you should remove it. You can do this by adding another keyboard (e.g. US) and making it the default one, then removing the keyboard you are trying to get rid of.
  2. Open regedit
  3. Warning: you should backup your registry in case you accidentally delete something important.
  4. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\
  5. Find the key that represents your keyboard: (referred to as "the key" in following steps)
    • It should be in the form XXXXXXXX (an 8 hex digit number).
    • Each key should have values such as: Layout Display Name, Layout File, Layout Id, Layout Product Code, Layout Text.
    • The Layout Text property should match the keyboard name that you chose.
    • Mine was near the end and started with an a instead of a 0 like all the others.
  6. Take a look at the Layout File which should be a .dll name. I will refer to it as "the dll" in the following steps.
  7. Look for the dll in C:\WINDOWS\system32\dllcache and delete it if it exists.
  8. Look for the dll in C:\WINDOWS\system32 and delete it if it exists.
  9. Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes and see if it has a Name which is equal to the key's name (e.g. XXXXXXXX) and a value such as en. If it does, delete it.
  10. Navigate back to the key (from step 5), and delete the entire key.