簡體   English   中英

使用 SetLocaleInfo 設置 UI 語言 Windows

[英]Set UI Language Windows with SetLocaleInfo

我想更改 windows 系統的默認語言。 從 powershell 開始,有一種方法可以使用

Set-WinUILanguageOverride -Language de-DE (將語言更改為德語)

但是,我正在尋找相同的 win32 api 調用。 嘗試了SetLocaleInfo ,但沒有用。以下代碼打印 0,因為 SetLocaleInfo 失敗。 GetLastError()返回了ERROR_INVALID_FLAGS ,但不確定這里需要哪個標志 go 。 謝謝。

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;
}

正如@Petesh 所說,您使用的兩個LCType對於SetLocaleInfo function 無效,並且SetLocaleInfo沒有可以設置 windows 系統的 UI 語言的有效標志。

根據User Interface Language Management

用戶界面語言

要檢索用戶 UI 語言,應用程序可以調用GetUserDefaultUILanguageGetUserPreferredUILanguages 應用程序無法更改用戶 UI 語言,因為沒有 function 可以設置它。

所以沒有合適的Windows32 API可以修改windows系統的UI語言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM