是否有WinXP / WinXP Embedded API来更改Locale(特别是IME)?

时间:2009-05-04 09:42:44

标签: c++ winapi visual-c++

我正在寻找WinXP上的API来在已安装的IME之间切换。

方案是,能够插入langauge键盘(比如西班牙语)并通过单击UI按钮(比如名为西班牙语的按钮)来更改IME

e.g。我插入一个西班牙语键盘,然后单击名为Spanish的UI按钮。这应该在内部将IME更改为已安装的西班牙语

由于

1 个答案:

答案 0 :(得分:1)

我正在尝试更改区域设置/ IME(属于区域设置)。 我发现有一个名为'SystemParametersInfo'的api,它允许我们在系统级别进行设置。在我的情况下,我不得不去控制面板>区域设置>然后在语言选项卡下切换已安装的语言环境。这最终可以以编程方式实现,如代码所示:

#include "stdafx.h"
#include "windows.h"

int _tmain(int argc, _TCHAR* argv[])
{

HKL hLangId = 0;
bool isFine;
DWORD errorCode;

errorCode = GetLastError();

isFine = SystemParametersInfo(SPI_GETDEFAULTINPUTLANG, 0, &hLangId, 0);

errorCode = GetLastError();

HKL spanishLanguage = (HKL) (0x040a0c0a);

isFine = SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, &spanishLanguage, 0);

errorCode = GetLastError();

return 0;

}