Función GetKeyNameTextW (winuser.h)

Recupera una cadena que representa el nombre de una tecla.

Sintaxis

int GetKeyNameTextW(
  [in]  LONG   lParam,
  [out] LPWSTR lpString,
  [in]  int    cchSize
);

Parámetros

[in] lParam

Tipo: LONG

Segundo parámetro del mensaje de teclado (como WM_KEYDOWN) que se va a procesar. La función interpreta las siguientes posiciones de bits en lParam.

Bits Significado
16-23 Código de tecla. El valor depende del OEM.
24 Especifica si la tecla es una tecla extendida, como las teclas ALT y CTRL derechas que aparecen en un teclado mejorado de 101 o 102 teclas. El valor es 1 si es una tecla extendida; de lo contrario, es 0.
25 "No te importa" bit. La aplicación que llama a esta función establece este bit para indicar que la función no debe distinguir entre las teclas CTRL y MAYÚS izquierda y derecha, por ejemplo.

Para obtener más información, consulte Marcas de mensaje de pulsación de tecla.

[out] lpString

Tipo: LPTSTR

Búfer que recibirá el nombre de la clave.

[in] cchSize

Tipo: int

Longitud máxima, en caracteres, del nombre de clave, incluido el carácter nulo de terminación. (Este parámetro debe ser igual al tamaño del búfer al que apunta el parámetro lpString ).

Valor devuelto

Tipo: int

Si la función se ejecuta correctamente, se copia una cadena terminada en null en el búfer especificado y el valor devuelto es la longitud de la cadena, en caracteres, sin contar el carácter nulo de terminación.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

El formato de la cadena key-name depende del diseño del teclado actual.

El diseño del teclado mantiene una lista de nombres en forma de cadenas de caracteres para las teclas con nombres más largos que un solo carácter. El nombre de la tecla se traduce según el diseño de teclado activo actualmente, por lo que la función podría devolver resultados diferentes para diferentes diseños de teclado.

El nombre de una clave de carácter es el propio carácter. Los nombres de las claves inactivas se escriben en su totalidad.

Es posible que este método no funcione correctamente con algunos diseños de teclado que producen varios caracteres (es decir, ligaduras) o caracteres Unicode complementarios que se imprimen en una sola pulsación de tecla. Además, las claves que se asignan a la "A". Los códigos de clave virtual Z" se traducen a mayúsculas "A". Caracteres Z, independientemente del diseño del teclado actual. Use los métodos ToUnicode o ToUnicodeEx en estos casos.

El encabezado winuser.h define GetKeyNameText 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o 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 (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también

Entrada de teclado

Diseños de teclado

Ejemplos de diseño de teclado

ToUnicode

ToUnicodeEx