setThreadUILanguage 函式 (winnls.h)

設定目前線程的使用者介面語言。

Windows Vista 和更新版本: 此函式無法清除線程慣用UI語言清單。 您的 MUI 應用程式應該呼叫 SetThreadPreferredUILanguages 來清除語言清單。

Windowsxp: 此函式僅限於允許操作系統識別及設定可在 Windows 控制臺上使用的安全值。

語法

LANGID SetThreadUILanguage(
  [in] LANGID LangId
);

參數

[in] LangId

線程使用者介面語言的語言標識碼

Windows Vista 和更新版本: 應用程式可以指定語言標識碼 0 或非零標識碼。 如需詳細資訊,請參閱<備註>一節。

Windowsxp: 應用程式只能將此參數設定為 0。 此設定會導致函式選取最能支援主控台顯示的語言。 如需詳細資訊,請參閱<備註>一節。

傳回值

如果成功,則傳回輸入語言標識碼。 如果輸入標識碼為非零值,函式會傳回該值。 如果語言標識碼為 0,函式一律會成功,並傳回最能支援 Windows 控制台的語言標識碼。 請參閱<備註>一節。

如果輸入語言標識碼為非零,且函式失敗,則傳回值與輸入語言標識元不同。 若要取得擴充的錯誤資訊,應用程式可以呼叫 GetLastError

備註

建立線程時,線程使用者介面語言設定是空的,且線程的使用者介面會顯示在用戶選取的語言中。 此函式可讓應用程式變更目前執行線程的使用者介面語言。

Windows Vista 和更新版本: 呼叫此函式並針對語言標識符指定 0,與呼叫 SetThreadPreferredUILanguages 與設定MUI_CONSOLE_FILTER旗標相同。 如果應用程式指定有效的非零語言標識碼,函式會設定線程的特定使用者介面語言。 為語言識別元指定 0 之後,應用程式無法使用下列任何常數來對應至語言識別碼:

Windowsxp: 當應用程式使用語言標識碼為 0 呼叫此函式時,函式會先確認目前的使用者介面不需要 Uniscribe,而且控制台 代碼頁支援它。 如果使用者介面通過這些測試,函式會使用提供的值。 如果沒有,函式會將線程使用者介面語言變更為 Windows 主控台可以顯示的語言。 Windows XP 不支援與線程地區設定不同的線程使用者介面語言概念。 因此,此函式會變更 Windows XP 上的線程地區設定。 您的應用程式可以輕鬆地設定線程,根據使用者和系統慣用的UI語言、非 Unicode 應用程式的語言,以及控制台的功能,使用最適合控制台顯示的語言。

C# 簽章

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.UInt16 SetThreadUILanguage(
            System.UInt16 LangId
            );

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 winnls.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

GetThreadUILanguage

多語系使用者介面

多語系使用者介面函式

SetThreadPreferredUILanguages