winuser.h


GetKeyboardState

La función GetKeyboardState copia el estado de las 256 teclas virtuales al buffer especificado.

Sintaxis

BOOL GetKeyboardState(
    PBYTE lpKeyState  // dirección de array que recibe los datos de estado
   );

Parámetros

lpKeyState: apunta a un array de 256 bytes que recibirá los datos de estado para cada tecla virtual.

Valor de retorno

Si la función tiene éxito, el valor de retorno es distinto de cero.

Si la función falla, el valor de retorno es cero. Para obtener información sobre el error, llamar a GetLastError.

Observaciones

Una aplicación puede llamar a esta función para recuperar el estado actual de todas las teclas virtuales. El estado cambia cuando un hilo toma los mensajes del teclado de su cola de mensajes. El estado no cambia cuando los mensajes de teclado son enviados a la cola de mensajes.

Cuando la función regresa, cada miembro del array apuntado por el parámetro lpKeyState contiene el dato de estado de una tecla virtual. Si el bit de mayor peso es 1, la tecla está pulsada; en otro caso, no lo está. Si el bit de menor peso es, la tecla está bloqueada. Una tecla, como en el caso de la de Bloqueo de Mayúsculas, está bloqueada si está activada. La tecla está inactiva y no bloqueada si el bit de menor peso es 0. El indicador luminoso de tecla bloqueda (si existe) del teclado estará encendido si la tecla está bloqueada, y apagada si la tecla no lo está.

Para recuperar la información de estado para una tecla individual, usar la función GetKeyState.

Una aplicación puede usar las constantes de tecla virtual VK_SHIFT, VK_CONTROL y VK_MENU como índices dentro del array apuntado por lpKeyState. Esto proporciona el estado de las teclas de Mayúsculas, Control y Alt sin distinguir entre la izquierda y derecha. Una aplicación también puede usar las siguientes constantes de código de tecla virtual como índices para distinguir entre las variantes izquierda y derecha de estas teclas:

VK_LSHIFT	VK_RSHIFT
VK_LCONTROL	VK_RCONTROL
VK_LMENU	VK_RMENU

Estas constantes de distinción entre izquierda y derecha están disponibles para una aplicación sólo a través de las funciones GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState y MapVirtualKey.