SetProcessPreferredUILanguages 函数 (winnls.h)

设置应用程序进程的进程首选 UI 语言。 有关详细信息,请参阅 用户界面语言管理

语法

BOOL SetProcessPreferredUILanguages(
  [in]            DWORD    dwFlags,
  [in, optional]  PCZZWSTR pwszLanguagesBuffer,
  [out, optional] PULONG   pulNumLanguages
);

参数

[in] dwFlags

标识要用于进程首选 UI 语言的语言格式的标志。 标志互斥,默认值为MUI_LANGUAGE_NAME。

建议使用 MUI_LANGUAGE_NAME 而不是MUI_LANGUAGE_ID。

含义
MUI_LANGUAGE_ID
输入参数语言字符串采用 语言标识符 格式。
MUI_LANGUAGE_NAME
输入参数语言字符串采用 语言名称 格式。

[in, optional] pwszLanguagesBuffer

指向双 null 终止的多字符串缓冲区的指针,该缓冲区包含按优先顺序降序排列的 null 分隔列表。 如果缓冲区中有超过五种语言,则 函数仅设置前五种有效语言。

或者,如果不需要语言列表,此参数可以包含 NULL 。 在这种情况下,函数会清除进程的首选 UI 语言。

[out, optional] pulNumLanguages

指向输入缓冲区中进程语言列表中已设置的语言数的指针,最多为 5。

返回值

如果成功,则返回 TRUE ,否则返回 FALSE 。 若要获取扩展错误信息,应用程序可以调用 GetLastError,这会返回以下错误代码:

  • ERROR_INVALID_PARAMETER。 指定的参数无效。
如果进程首选 UI 语言列表为空,或者为进程指定的语言无效,则函数将成功并在 pulNumLanguages 参数中设置 0。

注解

理想情况下,应用程序会在启动后尽快调用 SetProcessPreferredUILanguages

此函数返回后,应用程序可以调用 GetProcessPreferredUILanguages 来验证和检查生成的语言列表。

指定MUI_LANGUAGE_ID时,输入参数语言字符串必须使用十六进制语言

不包含前导 0x 且长度为 4 个字符的标识符。 例如,en-US 应为

传递为“0409”,将 en 传递为“0009”。

注意 建议MUI_LANGUAGE_ID使用MUI_LANGUAGE_NAME。
 

C# 签名

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.Boolean SetProcessPreferredUILanguages(
            System.UInt32 dwFlags,
            System.String pwszLanguagesBuffer,
            ref System.UInt32 pulNumLanguages
            );

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 winnls.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

GetProcessPreferredUILanguages

多语言用户界面

多语言用户界面函数