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