winuser.h


VkKeyScanEx

[Ahora Soportado en Windows NT]

La función VkKeyScanEx traduce un carácter al código de tecla virtual y estado actual de teclas con bloqueo del teclado. La función traduce el carácter usando el lenguaje de entrada y el diseño de teclado físico identificado por el manipulador de diseño de teclado dado.

Sintaxis

SHORT VkKeyScan(
    TCHAR ch   // carácter a traducir
    HKL dwhkl  // manipulador de diseño de teclado
       );

Parámetros

ch: especifica el carácter a traducir a código de tecla virtual.

dwhkl: identifica el diseño de teclado a usar para traducir el carácter. Este parámetro puede ser cualquier manipulador de diseño de teclado devuelto por la función LoadKeyboardLayout.

Valor de retorno

Si la función tiene éxito, la palabra de menor peso del valor de retorno contiene el código de de tecla virtual y la palabra de mayor peso contiene el estado de desplazamiento (shift), el cual puede ser una combinación de los siguientes bits:

Bit Significado
1 Cualquier tecla de Mayúsculas está presionada.
2 Cualquier tecla de Control está presionada.
4 Cualquier tecla de Alt está presionada.

Si la función no encuentra una tecla que traduzca el código de carácter pasado, tanto los bytes de mayor como de menor peso contienen -1

Observaciones

Para diseños de teclado que usen la tecla Alt derecha como tecla de "shift" (por ejemplo, el diseño de teclado francés), el estado de desplazamiento se representa por el valor 6, ya que la tecla Alt del lado derecho se convierte internamente a CTRL+ALT.

Las traducciones para el teclado numérico (VK_NUMPAD0 a VK_DIVIDE) se ignoran. Esta función está pensada para traducir caracteres en pulsaciones de teclado sólo para la parte principal del teclado. Por ejemplo, el carácter "7" se traduce como VK_7, no como VK_NUMPAD7.

VkKeyScanEx se usa por aplicaciones que envían caracteres usando los mensajes WM_KEYUP y WM_KEYDOWN.