C++ 使用SetLocaleInfo设置UI语言窗口

C++ 使用SetLocaleInfo设置UI语言窗口,c++,windows,powershell,winapi,C++,Windows,Powershell,Winapi,我想更改windows系统的默认语言。在powershell中,有一种方法可以使用 设置WinUILanguageOverride-语言de(将语言更改为德语) 然而,我正在寻找一个相同的win32 api调用。尝试了SetLocaleInfo,但它不起作用。由于SetLocaleInfo失败,下面的代码打印0GetLastError()返回了ERROR\u无效\u标志,但不确定需要在此处显示哪个标志。谢谢 int main() { LCID lcid = GetSystemDefaul

我想更改windows系统的默认语言。在powershell中,有一种方法可以使用

设置WinUILanguageOverride-语言de
(将语言更改为德语)

然而,我正在寻找一个相同的win32 api调用。尝试了
SetLocaleInfo
,但它不起作用。由于SetLocaleInfo失败,下面的代码打印0
GetLastError()
返回了
ERROR\u无效\u标志
,但不确定需要在此处显示哪个标志。谢谢

int main()
{
    LCID lcid = GetSystemDefaultLCID();
    cout << "system default >> " << lcid << endl;

    wstring regionCode;
    
    //Tatar Russia
    lcid = 1092;
    regionCode = L"0x0444";
    cout << "Tatar Russia " << SetLocaleInfo(lcid, LOCALE_FONTSIGNATURE | LOCALE_SISO639LANGNAME, regionCode.c_str()) << endl;

    return 0;
}
intmain()
{
LCID LCID=GetSystemDefaultLCID();

cout正如@Petesh所说,您使用的两个
LCType
对于
SetLocaleInfo
函数无效,并且对于
SetLocaleInfo
没有可以设置windows系统UI语言的有效标志

根据报告:

用户界面语言

要检索用户UI语言,应用程序可以调用或。应用程序无法更改用户UI语言,因为没有设置该语言的函数


因此,没有合适的Windows32 API可以修改windows系统的UI语言。

表示您传递的两个标志对
GetLocaleInfo
有效,而对
SetLocaleInfo
无效。知道什么是有效标志吗?