Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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: ?

share|improve this question

3 Answers 3

Here are the steps that helped me to get out of this issue:

  • Uninstall the layout via installer. This will remove .DLL files from appropriate locations but will leave keyboard layout record in the registry (and possibly DLLs already loaded in system memory).
  • Log out. The registry will clean itself at this point.
  • Log in.
  • Rebuild and reinstall the keyboard layout.
share|improve this answer

I had to follow the procedure described above because repeated attempts to uninstall a keymap did not remove the registry key (although the .dlls were gone). Very useful.

Something seems to be badly broken either with Microsoft Keyboard Layout Creator 1.4 or Windows' handling of keymaps in general. If you are having difficulty changing a custom keymap or installing a new one based on one that is already installed, then you might want to try opening up your keymap source (.klc file) in a text editor and making sure the description of the keymap is unique.

MKLC seems sometimes to accidentally not save changes to this, but it seems to be used by Windows as the unique identifier of the keymap so Windows will refuse to install your keymap if it's the same as an installed keymap.

The description line follows "0409\t" (no quotes, the \t is a tab character), after a line that just reads "DESCRIPTIONS", very near the end of the file. If the description is wrong, it seems to be fine to edit it manually.

share|improve this answer
up vote 3 down vote accepted

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.
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.