Don't just delete registry keys!

by Michael S. Kaplan, published on 2007/09/19 03:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/09/19/4992574.aspx


The other day, someone from product support was working with a customer whose Add button on the Text Services and Input Languages dialog was grayed out.

You know, the Add button in this dialog:

It turns out this can only happen in some pretty catastrophic circumstances, like the registry key being missing.

I found myself intrigued about what the behavior might be like, so I decided to test things out here. So that you won't have to! :-)

First, let me point out the usual warning that the Microsoft Knowledge Base does:

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

Let me add one thing to that, if you wanted to do this yourself, back up the registry subkey, as the menu option below does:

PLEASE follow this advice -- if you don't then you are kind of semi-screwed without independently fixing the key back up....

Ok, now I will delete the "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts" subkey.

So what happens when you try to launch the dialog?

Well, something very sad:

The Add... button is definitely disabled. It seems that since the dialog needs that data to populate the dialog, lack of any into pretty much makes it empty.

That IME is a Text Services Framework TIP, which is mostly stored elsewhere....

Of course that begs the question of what would have happened if I only had regular keyboards and no TSF IMEs, more like this situation:

If I deleted the key then, what would happen?

You don't want to know, trust me. :-)

Well, if you are going to twist my arm:

Yikes!

Incompatible keyboard driver detected.  This dialog has been disabled.

In case someone as confused about the blank dialog. :-)

Of course you know what's next, right?

I have to try all of this on Vista.

Backing up the registry key first, of course!!!

Here is what the deleted keyboards registry key does:

The Add... button is not disabled!

Maybe it will work somehow?

Though the fact that it lists none of my keyboards makes me nervous, if you know what I mean....

Here goes:

Doesn't inspire much confidence, huh? :-)

Okay, enough excitement for one day, let's add those backup up registry keys back.

Hold our breath, launch the dialog again, and

Whew! Everything is back.

And the Add... button?

Good, everything is back.

Let's not delete sections of the registry any more. Some of those dialogs are plain disturbing!

 

This post brought to you by (U+1e35, a.k.a. LATIN SMALL LETTER K WITH LINE BELOW)


# Dean Harding on 19 Sep 2007 8:56 PM:

Pretty cool that it handles it so gracefully, really! I know plenty of applications would just die horribly if data they were expecting wasn't there!

# Dan on 21 Oct 2007 2:12 PM:

This might be unrelated, but do you know what one might do if there's a language that is impossible to remove. It doesn't appear in the "Text Services and Input Languages" form, but it appears on the taskbar as one of the optional languages available.

# Michael S. Kaplan on 21 Oct 2007 2:52 PM:

Hi Dan -- It is hard to say without more information. What input language/keyboard is it, specifically?

# vroland on 10 Oct 2008 3:42 AM:

hi michael, nice one, where can i define in the registry to install more language options (for example english, chinese, japanese, hungarian)

thx for your help

regards,

r

# Michael S. Kaplan on 10 Oct 2008 6:25 AM:

You mean to add keyboards? Don't do it in the registry; do it using Regional Options unattend!

# vroland on 10 Oct 2008 7:05 AM:

my problem is this:

when i deploy a fresh vista desktop i want to add more languages to the installed services in the text services and input languages

and make it default for all new users, i tried to add to the registry key hku\.default\keyboard layout\preload another string with the id:2 and value: 0000040e but when i made a new user he only got the default 00000409 keyboard layout

how can i do it using regional options unattend?

sorry for my english

regards,

r

# Michael S. Kaplan on 10 Oct 2008 11:09 AM:

You can look here

http://blogs.msdn.com/michkap/archive/2006/05/30/610505.aspx

or actually for an even better answer, here:

http://blogs.msdn.com/michkap/archive/2007/07/30/4126966.aspx

for the info on how to do this in >= Vista.

Don't use the registry for this. That white paper in the second blog explains how to make the change get applied to new users....

# vroland on 13 Oct 2008 2:12 AM:

thx for your help Michael,

i'll look the url-s, they will help solving my problem

regards,

r

# vroland on 14 Oct 2008 2:52 AM:

it helped, i managed to solve my problem

thx again for your help

regards,

r


go to newer or older post, or back to index or month or day