The online racing simulator
Simplified Chinese + Vista Issue
Hello Programmers.

I just wonder if any of you might be able to help with this issue I have come across. It's a rare issue and not much discussed or documented on the internet. Probably because it only becomes a real problem when you are writing a full screen Windows program that supports Simplified Chinese text entry. Some days of searching have not brought me any closer to the answer, if there is one...

The short statement of the problem is that I can display the name of the Active Input Method on an XP system, but not on a Vista system. This is a problem because a user typing Simplified Chinese with LFS in full screen mode (so the language bar is invisible) can not know which mode the input system is in.

I have attached a very small Windows program and the C++ source code file to demonstrate the issue.

Quote from kb_test.cpp :HERE is a description of the Simplified Chinese IME problem in Windows Vista...

In Windows XP, GetKeyboardLayoutName returns a different value depending on the
active input method, e.g. US Keyboard / ZhengMa / QuanPin / Microsoft Pinyin IME
and the actual name of the input method can be read from the registry (below)

In XP this program displays a different value each time you press CTRL + SHIFT - OK!

In Windows Vista however, the different Simplified Chinese Input Methods have been
unified into a single IME operating in different modes and this causes a problem
for a full screen program which must display the name of the active input method

In Vista this program displays "Chinese (Simplified) - US Keyboard" in all modes - BAD!

Any way to display some information that identifies the active input method would solve the problem.

I don't think many programmers will know the answer to this, but... maybe someone does, maybe I've missed something...

Thanks for your help!

EDIT : How to use the program (East Asian support and Simplified Chinese input methods must be installed)

Press ALT+SHIFT until it says Chinese (Simplified).
At that point press CTRL+SHIFT to select the active input method.
The input method is reported correctly in Windows XP but not in Vista.
Attached files
kb_test.zip - 18.8 KB - 300 views

FGED GREDG RDFGDR GSFDG