c++ - 是否有 WinXP/WinXP Embedded API 来更改区域设置(特别是 IME)?

标签 c++ winapi visual-c++

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

场景是,能够插入语言键盘(比如西类牙语)并通过单击 UI 按钮(比如名为西类牙语的按钮)更改 IME

例如我插入西类牙语键盘并单击名为西类牙语的 UI 按钮。这应该在内部将 IME 更改为已经安装的西类牙语

谢谢

最佳答案

我试图更改语言环境/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;

关于c++ - 是否有 WinXP/WinXP Embedded API 来更改区域设置(特别是 IME)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/819483/

相关文章:

c++ - 如何使用 WinApi 设置最小窗口大小

c++ - 无法在 VC++ 中从 NASM 调用 c 函数,除了 main,出现链接错误

c++ - 如何从可变模板参数中删除元素?

c++ - 求解整数背包

c++ - 静态类成员的使用

c++ - 什么被加载到标准命名空间?

c++ - 改变音量 win32 c++

c# - 从 C++ Win32 调试托管组件

c++ - 如何检查ACL是否被保护

c++ - Boost Serialization - 导出多个 CPP 文件