Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 更改显示语言后查找所选语言LCID_Windows_Winapi_Windows 7 - Fatal编程技术网

Windows 更改显示语言后查找所选语言LCID

Windows 更改显示语言后查找所选语言LCID,windows,winapi,windows-7,Windows,Winapi,Windows 7,我有一台Windows7机器,它安装了多种语言,使用 控制面板 地域与语言 键盘和语言 安装/卸载语言 当我使用更改显示语言时 控制面板 地域与语言 键盘和语言 选择一种显示语言 一切都显示正确 我需要阅读选择的语言。 我找到的注册表项都指向原始语言(0409)英语-美国,而不是所选语言(0404)中文-台湾 有人知道如何找到所选语言LCID吗? 如果我可以获得LCID,我可以用英语显示所选语言(这是我的最终目标)。编辑: 正如Mark Ransom所建议的,您可以使用GetUserDefaul

我有一台Windows7机器,它安装了多种语言,使用 控制面板 地域与语言 键盘和语言 安装/卸载语言

当我使用更改显示语言时 控制面板 地域与语言 键盘和语言 选择一种显示语言 一切都显示正确

我需要阅读选择的语言。 我找到的注册表项都指向原始语言(0409)英语-美国,而不是所选语言(0404)中文-台湾

有人知道如何找到所选语言LCID吗? 如果我可以获得LCID,我可以用英语显示所选语言(这是我的最终目标)。

编辑:


正如Mark Ransom所建议的,您可以使用
GetUserDefaultLCID

int wmain()
{
    LCID lcid = GetUserDefaultLCID();//LOCALE_USER_DEFAULT;
    cout << "lcid: " << lcid << endl;
    wchar_t buf[100];
    if (GetLocaleInfo(lcid, LOCALE_ILANGUAGE, buf, 100)) wcout << buf << endl;
    if (GetLocaleInfo(lcid, LOCALE_SENGLANGUAGE, buf, 100)) wcout << buf << endl;
    if (GetLocaleInfo(lcid, LOCALE_SISO639LANGNAME, buf, 100)) wcout << buf << endl;
    return 0;
}

在程序运行中,如果用户改变系统语言,则将代码> > WMIN输入Langchange < /C> >消息发送到应用程序:


遵循该链接并深入挖掘将导致。
GetUserDefaultLCID
更有意义。我给出的链接是当用户在程序运行中间改变系统语言时,这不是很实用。我急于尝试GetUserDefaultLCID,但是它和我所有的注册表尝试都有同样的问题。它返回“默认”(即原始安装的)LCID,在我的情况下,该LCID是(0409)而不是(0404),显然是当前选定的显示语言。如果将语言更改为德语或法语怎么办?我记得中文有时不是默认安装的。我试过Barmak在他的答案中输入的代码,但我仍然得到了原件(0409)。我正在使用Windows7,但我认为这不是问题所在。Barmak的问题:您是否在控制面板中选择了与默认Windows安装语言不同的显示语言,或者(0404)中文是安装语言?
lcid: 1028
0404
Chinese (Traditional)
zh