Función SetThreadUILanguage (winnls.h)

Establece el idioma de la interfaz de usuario para el subproceso actual.

Windows Vista y versiones posteriores: Esta función no puede borrar la lista de idiomas de interfaz de usuario preferidos del subproceso. La aplicación MUI debe llamar a SetThreadPreferredUILanguages para borrar la lista de idiomas.

Windows XP: Esta función se limita a permitir que el sistema operativo identifique y establezca un valor que sea seguro de usar en la consola de Windows.

Sintaxis

LANGID SetThreadUILanguage(
  [in] LANGID LangId
);

Parámetros

[in] LangId

Identificador de idioma del idioma de la interfaz de usuario para el subproceso.

Windows Vista y versiones posteriores: La aplicación puede especificar un identificador de idioma de 0 o un identificador distinto de cero. Para obtener más información, vea la sección Comentarios.

Windows XP: La aplicación solo puede establecer este parámetro en 0. Esta configuración hace que la función seleccione el idioma que mejor admita la pantalla de la consola. Para obtener más información, vea la sección Comentarios.

Valor devuelto

Devuelve el identificador de idioma de entrada si se ejecuta correctamente. Si el identificador de entrada es distinto de cero, la función devuelve ese valor. Si el identificador de idioma es 0, la función siempre se realiza correctamente y devuelve el identificador del idioma que mejor admite la consola de Windows. Consulte la sección Comentarios.

Si el identificador de idioma de entrada es distinto de cero y se produce un error en la función, el valor devuelto difiere del identificador de idioma de entrada. Para obtener información de error extendida, la aplicación puede llamar a GetLastError.

Comentarios

Cuando se crea un subproceso, la configuración del idioma de la interfaz de usuario del subproceso está vacía y la interfaz de usuario del subproceso se muestra en el idioma seleccionado por el usuario. Esta función permite a la aplicación cambiar el idioma de la interfaz de usuario para el subproceso en ejecución actual.

Windows Vista y versiones posteriores: Llamar a esta función y especificar 0 para el identificador de idioma es idéntico a llamar a SetThreadPreferredUILanguages con la marca MUI_CONSOLE_FILTER establecida. Si la aplicación especifica un identificador de idioma distinto de cero válido, la función establece un idioma de interfaz de usuario determinado para el subproceso. Después de especificar 0 para el identificador de idioma, la aplicación no puede usar ninguna de las siguientes constantes para corresponder a un identificador de idioma:

Windows XP: Cuando la aplicación llama a esta función con un identificador de idioma de 0, la función comprueba primero que la interfaz de usuario actual no requiere Uniscribe y que es compatible con la página de códigos de la consola. Si la interfaz de usuario supera estas pruebas, la función usa el valor proporcionado. Si no es así, la función cambia el idioma de la interfaz de usuario del subproceso a un idioma que la consola de Windows puede mostrar. Windows XP no admite un concepto de lenguaje de interfaz de usuario de subprocesos independiente de la configuración regional del subproceso. Por lo tanto, esta función cambia la configuración regional del subproceso en Windows XP. Es fácil que la aplicación establezca un subproceso para usar el idioma más adecuado para la presentación de la consola, en función de los idiomas de interfaz de usuario preferidos por el usuario y del sistema, el idioma de las aplicaciones que no son Unicode y las funcionalidades de la consola.

Firma de C#

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winnls.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

GetThreadUILanguage

Interfaz de usuario multilingüe

Funciones de interfaz de usuario multilingüe

SetThreadPreferredUILanguages