Función LoadKeyboardLayoutA (winuser.h)

Carga en el sistema un nuevo identificador de la configuración regional de entrada (antes denominado distribución de teclado).

Antes de Windows 8: se pueden cargar varios identificadores de configuración regional de entrada a la vez, pero solo uno por proceso está activo a la vez. La carga de varios identificadores de configuración regional de entrada permite cambiar rápidamente entre ellos.

A partir de Windows 8: el identificador de configuración regional de entrada se carga para todo el sistema. Esta función no tiene ningún efecto si el proceso actual no posee la ventana con el foco del teclado.

Sintaxis

HKL LoadKeyboardLayoutA(
  [in] LPCSTR pwszKLID,
  [in] UINT   Flags
);

Parámetros

[in] pwszKLID

Tipo: LPCTSTR

Nombre del identificador de configuración regional de entrada que se va a cargar. Este nombre es una cadena compuesta por el valor hexadecimal del identificador de idioma (palabra baja) y un identificador de dispositivo (palabra alta). Por ejemplo, el inglés de EE. UU. tiene un identificador de idioma de 0x0409, por lo que el diseño principal del inglés de EE. UU. se denomina "00000409". Las variantes del diseño inglés de EE. UU. (como el diseño Dvorak) se denominan "00010409", "00020409", etc.

Para obtener una lista de los diseños de entrada que se proporcionan con Windows, vea Identificadores de teclado y Editores de métodos de entrada para Windows.

[in] Flags

Tipo: UINT

Especifica cómo se cargará el identificador de configuración regional de entrada. Este parámetro puede ser uno o más de los siguientes valores.

Valor Significado
KLF_ACTIVATE
0x00000001
Antes de Windows 8: si el identificador de configuración regional de entrada especificado aún no está cargado, la función carga y activa el identificador de configuración regional de entrada para el subproceso actual.

A partir de Windows 8: si el identificador de configuración regional de entrada especificado aún no está cargado, la función carga y activa el identificador de configuración regional de entrada para el sistema.

KLF_NOTELLSHELL
0x00000080
Antes de Windows 8: impide que un procedimiento de enlace shellProc reciba un código de enlace de HSHELL_LANGUAGE cuando se cargue el nuevo identificador de configuración regional de entrada. Este valor se usa normalmente cuando una aplicación carga varios identificadores de configuración regional de entrada uno después de otro. La aplicación de este valor a todos, pero el último identificador de configuración regional de entrada retrasa el procesamiento del shell hasta que se hayan agregado todos los identificadores de configuración regional de entrada.

A partir de Windows 8: en este escenario, se establece el último identificador de configuración regional de entrada para todo el sistema.

KLF_REORDER
0x00000008
Antes de Windows 8: mueve el identificador de configuración regional de entrada especificado al encabezado de la lista de identificadores de configuración regional de entrada, lo que convierte ese identificador de configuración regional en el identificador de configuración regional activo para el subproceso actual. Este valor reordena la lista de identificadores de configuración regional de entrada incluso si no se proporciona KLF_ACTIVATE .

A partir de Windows 8: mueve el identificador de configuración regional de entrada especificado al encabezado de la lista de identificadores de configuración regional de entrada, lo que hace que ese identificador de configuración regional sea el identificador de configuración regional activo para el sistema. Este valor reordena la lista de identificadores de configuración regional de entrada incluso si no se proporciona KLF_ACTIVATE .

KLF_REPLACELANG
0x00000010
Si el nuevo identificador de configuración regional de entrada tiene el mismo identificador de idioma que un identificador de configuración regional de entrada actual, el nuevo identificador de configuración regional de entrada reemplaza al actual como el identificador de configuración regional de entrada para ese idioma. Si no se proporciona este valor y los identificadores de configuración regional de entrada tienen los mismos identificadores de idioma, el identificador de configuración regional de entrada actual no se reemplaza y la función devuelve NULL.
KLF_SUBSTITUTE_OK
0x00000002
Sustituye el identificador de configuración regional de entrada especificado por otra configuración regional preferida por el usuario. El sistema comienza con este conjunto de marcas y se recomienda que la aplicación use siempre esta marca. La sustitución solo se produce si la clave del Registro HKEY_CURRENT_USER\Keyboard Layout\Substitutes define explícitamente una configuración regional de sustitución. Por ejemplo, si la clave incluye el nombre de valor "00000409" con el valor "00010409", cargar el diseño de EE. UU. ("00000409") hace que el diseño de United States-Dvorak ("00010409") se cargue en su lugar. El sistema usa KLF_SUBSTITUTE_OK al arrancar y se recomienda que todas las aplicaciones usen este valor al cargar identificadores de configuración regional de entrada para asegurarse de que la preferencia del usuario está seleccionada.
KLF_SETFORPROCESS
0x00000100
Antes de Windows 8: esta marca solo es válida con KLF_ACTIVATE. Activa el identificador de configuración regional de entrada especificado para todo el proceso y envía el mensaje WM_INPUTLANGCHANGE a la ventana Foco o Activo del subproceso actual. Normalmente, LoadKeyboardLayout activa un identificador de configuración regional de entrada solo para el subproceso actual.

A partir de Windows 8: esta marca no se usa. LoadKeyboardLayout siempre activa un identificador de configuración regional de entrada para todo el sistema si el proceso actual posee la ventana con foco de teclado.

KLF_UNLOADPREVIOUS
Esta marca no es compatible. En su lugar, use la función UnloadKeyboardLayout .

Valor devuelto

Tipo: HKL

Si la función se ejecuta correctamente, el valor devuelto es el identificador de configuración regional de entrada correspondiente al nombre especificado en pwszKLID. Si no hay ninguna configuración regional coincidente disponible, el valor devuelto es el idioma predeterminado del sistema.

Si la función no se realiza correctamente, el valor devuelto es NULL. Esto puede ocurrir si la biblioteca de diseño se carga desde el directorio de la aplicación.

Para obtener información de error extendida, llame a GetLastError.

Comentarios

El identificador de configuración regional de entrada es un concepto más amplio que un diseño de teclado, ya que también puede abarcar un convertidor de voz a texto, un método de entrada Editor (IME) o cualquier otra forma de entrada.

Una aplicación puede cargar y normalmente cargará el identificador de configuración regional de entrada predeterminado o IME para un idioma y puede hacerlo especificando solo una versión de cadena del identificador de idioma. Si una aplicación quiere cargar una configuración regional o IME específica, debe leer el registro para determinar el identificador de configuración regional de entrada específico que se va a pasar a LoadKeyboardLayout. En este caso, una solicitud para activar el identificador de configuración regional de entrada predeterminado para una configuración regional activará la primera coincidente. Se debe activar un IME específico mediante un identificador de configuración regional de entrada explícito devuelto desde GetKeyboardLayout o LoadKeyboardLayout.

Antes de Windows 8: esta función solo afecta al diseño del proceso o subproceso actual.

A partir de Windows 8: esta función afecta al diseño de todo el sistema.

Nota

El encabezado winuser.h define LoadKeyboardLayout como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también

ActivateKeyboardLayout

Conceptual

GetKeyboardLayoutName

Entrada de teclado

MAKELANGID

Otros recursos

Referencia

UnloadKeyboardLayout