No CONTROL over the SPACE being filled with CTRL+SPACE

by Michael S. Kaplan, published on 2007/02/02 18:54 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/02/02/1585687.aspx


Kevin asks:

Oh might guru, might you offer sage advice to a humble servant?

I've recently enabled the language bar in Vista so I could enter some Chinese characters to do some intl testing. It worked great, except for one problem - I can't seem to disable the language switch hotkey (ctrl-space, not so good for a Visual Studio developer). I tried editing the Key Sequence on all the Advanced Key Settings actions to uncheck the Enable Key Sequence checkbox for each. That worked for all of them except the last - Chinese (Simplified) IME - Ime/NonIme Toggle. When I try to disable that key sequence, it lets me clear the checkbox, but when I hit Apply or OK, bingo it's back to being enabled again. Help!

The dialog Kevin is referring to is this one in the Text Services and Input Languages dialog, in the Advanced Key Settings tab:

And Kevin is right -- that setting will simply not stick when you try to make no key sequence work -- it will always switch back to this one.

Definitely a bug.

The way it hits Kevin is almost a VS version of this bug, but not quite. :-)

Not sure how sage that was (or this next part will be, for that matter!), but the only workaround I found was assigning some other less annoying key sequence that you'd be less likely to press....

 

This post brought to you by  (U+0e43, a.k.a. THAI CHARACTER SARA AI MAIMUAN)


# Kevin Dente on 2 Feb 2007 8:54 PM:

Thanks. At least I know that I'm not crazy or irretrievably stupid.

Well, not stupid anyway. ;)

I swear I had problems even changing the keystroke to something more obscure (and I ended up removing the chinese language option because of it). But now I added it back in, and keyboard hotkey switching doesn't seem to work at all (I have to use the tray applet). *Sigh* Well, that's better than always using ctrl-space anyway.

# eb on 21 Feb 2008 4:18 PM:

This is also a problem in XP. And unfortunately it's still not fixed in Vista SP1 :-(

Also, assigning a different hot key doesn't really work - sooner or later it is back at Ctrl-Space.

# Simon on 19 Apr 2008 5:19 PM:

Any ideas? Assigning / unassigning a new hot key seems to be completely ignored (Vista SP1). If I want to program I need to remove the Chinese IME. And then if I want to type Chinese I need to reinstall the IME.

# Timwi on 27 Apr 2008 7:45 AM:

Unfortunately in Windows Vista uninstalling the IME is still not sufficient. It keeps reappearing and reassigning the Ctrl+Space sequence. This is excessively frustrating because I cannot get rid of it at all.

Does anyone know the correct registry settings to remove the damn thing?

# Oscar on 17 Jun 2008 12:39 AM:

yup, this is really annoying... as i am a graphic designer, working on adobe photoshop and illustrator are pain in the arse.... when i try to zoom in, it changes itself to chinese input. anyone knows how to deal with this? thank you.

# jduncan on 12 Jul 2008 11:01 AM:

I'm a programmer; I use Visual Studio and Emacs, so ctrl-space is vital to what I do every day.  I've discovered that using an alternative desktop shell such as GeoShell alleviates this issue.

It's kind of a shame really, I was starting to get into the shell enhancements they made for Vista.  Maybe I'll switch back when and if I see that there's an official fix for this.

This "solution" also points out that this must be a bug in explorer.exe, or in its interaction with the language system (such as where explorer.exe keeps its keyboard hooks).

# Simon on 29 Jul 2008 4:41 AM:

Alt+Right Arrow can be used in Visual Studio as an alternative to Ctrl+Space

# jduncan on 29 Jul 2008 2:18 PM:

Alt+Right Arrow can be used for intellisense, but I use Emacs and the Emacs keyboard scheme in Visual Studio, for which there can be no alternative to ctrl+space.

The main issue is that the keyboard should be left open for applications by the operating system; looking at my keyboard, I can only see one key that I would expect windows to "steal".

# Hei on 29 Aug 2008 5:20 AM:

I somehow work around this way:  install one more language

I install Japanese and Chinese on an English win XP.  Woops, XP does not response the Ctrl-Space any more, lalala...

I think properly XP just sits there and does not know which ime toggle to.

# Simon on 13 Nov 2008 7:49 PM:

Hei's advice didn't work for me unfortunately. Still cycles IME with more than one IME. This problem also makes the keyboard shortcut in Excel (CTRL+Space) not work.

# Mahesh on 26 Mar 2009 6:58 AM:

Thanks But after this Disable also In Excel Contr + Space Shortcut key not working Why......

# Lester on 13 Apr 2009 11:37 PM:

This same problem occurred to me while using Flash CS4 on Vista. I was trying to change the Keyboard Shortcut for the magnifier tool to the more familiar Ctrl-Space, when the Language Bar switched to Chinese Traditional Taiwan.

So I unchecked Enable Key Sequence and changed the shortcut to something obscure, like Shift-LeftAlt-F12. It seemed to work for a while, but whenever I went back to Flash the same thing happened. So I felt I had no choice but to remove the Chinese language packs, but IT STILL SWITCHED TO CHINESE.

After trying to figure out what happened, I realized that Ctrl-Space only switched to Chinese on applications that were already open, but (finally) didn't work when I opened new applications or restarted the existing ones. Very strange behavior, indeed.

# Eric on 23 Jun 2009 3:39 PM:

Amazingly, this problem STILL EXISTS in Windows 7!!! I've really got to wonder if MS is paying attention at all. Do they have no engineers in China??? I really can't believe it.

# Peter Cihak on 28 Jun 2009 8:40 AM:

I am experiencing the same problem. Changing the Hot Key in language setting or removing Chinese Input does not help. Anyone please let me know, if you find a solution.

# Daniel Wu on 3 Jul 2009 6:53 PM:

Is there a bug opened with Microsoft?  This bug exists in XP, Vista and Windows 7.  I wounder when will this be fixed?

It seems a lot of people (myself included) having issue with this but no fix in sight?

# Tito on 5 Aug 2009 3:02 PM:

If you change the letter that it works with, you can change it from Control-Space.

It's not disabled, but you can set it to a combination you would never use except for intentionally (Control + Shift + Fsomething?)

# Greg Truby on 13 Sep 2009 12:15 AM:

I came across this thread because I was having the exact same problem, but where it was driving me nuts was Excel (Ctrl+Space selects a column) and the VBA Editor.

I also, went into the keyboard controls and removed Chinese from my language list to no avail.  I'm grateful that many of you tried very complex solutions, because that's what I would have done next.  But your frustrations caused me to try "dum dum school" stuff instead.  I ended up going back into the Regional Language section and pretended to add a keyboard.  I then expanded every Chinese option on the menu and expanding every "Keyboard" and every "other".  In a couple of instances the "Drawing pad [32-bit only]" option was checked (even though I'm running Vista-64.  I unchecked the drawing pad boxes wherever I found them to be checked, clicked OK and so far, so good.  

Hopefully this might help some poor soul in the future.

# talaf on 23 Nov 2009 2:51 PM:

Hello

I have another workaround (or so it seems). It's a bit brutal but I was pretty annoyed and tired.

In HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys

I deleted every key except 00...010, 11 and 12. These were the ones that were documented in the MSDN (the 13 SHOULD be Ctrl-Space but I didn't have it).

http://msdn.microsoft.com/en-us/library/ms904626.aspx

Rebooted and the problem seems to have gone away. I can still Alt-Shift to switch languages and Shift to switch between chinese/roman input.

Very strange behaviour, how come this is still around?!

# Teoh Han Hui on 24 Nov 2009 12:49 PM:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000010]

"Key Modifiers"=hex:04,c0,00,00

==========

The valid values are 0x1 (Alt), 0x2 (Ctrl) and 0x3 (Shift). Changing it to an invalid value essentially disables the hot key.

That said, Microsoft really should have fixed this bug after so long...

# Teoh Han Hui on 11 Dec 2009 7:10 AM:

Sorry but my "workaround" doesn't work.

Mitchell Cardno on 28 Jan 2010 2:47 AM:

I had the same problem and found that ctrl + space was assigned in another program!  It took me a good while to finally figure out that messenger plus had assigned ctrl + space to a "Messenger Lock with a system-wide shortcut"

Also, in windows 7, in Control Panel -> Region and Language -> Keyboards and Languages -> Change keyboards... -> Advanced Key Settings -> Change Key Sequence... you'll see that the "Switch Keyboard Layout" has the ctrl + shift key assigned as default.

Kyl on 25 Feb 2010 1:52 AM:

A refinement of talafs's method:

Go to HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys.

Search for a key that has :

Key Modifiers=02,c0 (Control)

Virtual Key=20 (Space)

Just delete that one and it should work.

amber on 28 Apr 2010 8:48 AM:

tried talaf and kyl's method: doesn't work. It is driving crazy!

Willson on 28 Apr 2010 5:07 PM:

It works, just make sure you reboot.

Goro on 19 Jul 2010 3:13 PM:

I am having the same problem. Unfortunately, I have no permission to change registry settings. My workaround is to first change the key sequence like Lester did, then select JP or KO from the left most button on the language bar. Then select Microsoft IME 2007 in the second button from the left. If you select JP, then also select Half-width Alphanumeric in the third button from the left. If you select KO, toggle the third button from the left to 'A'. So far either JP or KO worked. But I need to redo the above setting once in a while.

Jason on 23 Aug 2010 1:29 PM:

I was able to restore ctrl-space using the instructions here:  xahlee.org/.../emacs_mswin.html

You can disable the Windows shortcut that switches you among input methods of different languages. Here's the exact instruction for Windows Vista. Other Windows version should be similiar. Go to “Start‣Control Panel”. Choose Classic View on the left. Then, double click on the “Regional and Language Options” icon, then go to “Keyboards and Languages” tab, click on “Change Keyboards...”. Then, go to “Advanced Key Settings” tab, then, it should list Key sequences on the right column. Select a input choice that has shortcut key, then click the button “Change Key Sequence”.

Rob on 4 Oct 2010 8:23 AM:

I've tried everyone's suggestions here.. I've been back to this site many times without any luck until now. My problem was that the Android development toolkit for Eclipse was dynamically adding two variations of Chinese to my language settings every time it started the emulator. I suspect that if languages are dynamically added with little care, then their default keyboard combination for switching is ctrl-space. I tried changing them, like others have suggested, and of course that has no effect.

With a variation of Kyl and Talaf's suggestions, I went into the registry and played around with the hotkey settings. If I removed the "Hot Key" registry key 00000070 (it had the Key Modifier of 02c0 and Virtual Key of 20), then ctrl-space didn't work for ANY program. But if I go in there and change the key modifier to a less annoying combination, it works.  I set my key modifier to be 04c0 and virtual key of 20, which apparently matches up with shift-space.  I may end up changing it again until I get alt+shift+space.  I haven't figured out the bitmask for alt, but I suspect that it's either 01 or 08, which would mean that alt+shift would be either 12 or 09 as a registry value.

Vincent on 12 Mar 2011 4:13 PM:

Is anybody actually going to fix this bug? It's a bit of a disgrace that something as simple as ensuring a piece of software does not continually stomp a global keyboard shortcut has not been fixed in over 4 years.

Fae on 7 Aug 2011 11:15 PM:

I'm bloody annoyed by this as well. the solution provided does not work. Regardless of whether I disable the Chinese language altogether, or change a different key sequence, this annoying ctrl space thing just reverts itself. what a ***.

I regularly use ctrl space for my winamp global hotkeys, so it's not uncommon for me to hit that set of keys then realize that I can't use it because now my computer wants to type in Chinese. >_>

Celicasx on 23 May 2012 5:07 PM:

I have just had a MS support case logged regarding this issue.

They acknowledge there is a problem with the "Change Key Sequence" / "Enable Key Sequence" tickbox not taking effect.

Their advice in my situation was to alter the registry in the following fashion.

---

HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000010   -- This is for Simplified Chinese

HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000070   -- This is for Traditional Chinese

Current Value is:

Key Modifiers 02 c0 00 00

Virtual Key 20 00 00 00

Please change all to 00 00 00 00

Logoff and login again.

---

After attempting this, my Windows 7 machine was now behaving itself and not switching to Chinese language when i would press Ctrl + Space.

SconnieATX on 27 Jun 2012 12:50 PM:

Celicasx - I love you!!!!!! Can't tell you how long this has been bothering me. If you're in Texas, I'll buy you a beer

Erik on 21 Aug 2012 7:37 AM:

Still seems to be a problem with a current Windows 7 installation but after installing more or less everything Chinese Windows detected the need to do some updates it did not present me before. After installing all of them the bug still was there but now I could change the hotkey and it was applied after a reboot which just reset it to CTRL-Space before.

So still a bug but not realy a problem anymore as it no longer survives the reboot.


Please consider a donation to keep this archive running, maintained and free of advertising.
Donate €20 or more to receive an offline copy of the whole archive including all images.

referenced by

2008/07/15 The keys are so hot, they're smoking!

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