19

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

3 Answers 3

23

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.
3
  • in windows 10 you can find your layout listed with the rest of the ordinary programs in Add & Remove
    – Hashbrown
    Commented Apr 30, 2016 at 3:25
  • 4
    Also, check C:\WINDOWS\SysWOW64 for the dll
    – F.P
    Commented Apr 10, 2018 at 19:35
  • The link sensefulsolutions.com/2010/08/… is broken. (And I couldn't find a good replacement for it.) Maybe just remove the link? Commented Aug 26, 2022 at 9:00
0

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.
0

On my Windows 10, I had only to do 4 steps :

  1. Switch and disable the keyboard layout in Language and Regional settings;
  2. Remove the last entries of HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\ corresponding to my Layout (LayoutXXX);
  3. Remove the C:\Windows\system32\LayoutXXX.dll;
  4. Also on 64bits, remove the C:\Windows\SysWOW64\LayoutXXX.dll.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .