Función GetKeyboardState (winuser.h)

Copia el estado de las 256 teclas virtuales en el búfer especificado.

Sintaxis

BOOL GetKeyboardState(
  [out] PBYTE lpKeyState
);

Parámetros

[out] lpKeyState

Tipo: PBYTE

Matriz de 256 bytes que recibe los datos de estado de cada clave virtual.

Valor devuelto

Tipo: BOOL

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

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

Comentarios

Una aplicación puede llamar a esta función para recuperar el estado actual de todas las claves virtuales. El estado cambia a medida que un subproceso quita los mensajes de teclado de su cola de mensajes. El estado no cambia a medida que los mensajes de teclado se publican en la cola de mensajes del subproceso, ni cambia a medida que los mensajes de teclado se publican o recuperan de las colas de mensajes de otros subprocesos. (Excepción: los subprocesos que están conectados a través de AttachThreadInput comparten el mismo estado de teclado).

Cuando la función devuelve, cada miembro de la matriz a la que apunta el parámetro lpKeyState contiene datos de estado para una clave virtual. Si el bit de orden superior es 1, la clave está inactiva; de lo contrario, está arriba. Si la tecla es una tecla de alternancia, por ejemplo, CAPS LOCK, el bit de orden bajo es 1 cuando la tecla está alternada y es 0 si la tecla está desactivada. El bit de orden bajo no tiene sentido para las teclas que no son de alternancia. Se dice que una tecla de alternancia se alterna cuando está activada. La luz indicadora de una tecla de alternancia (si existe) en el teclado estará activada cuando se active la tecla y se desactive cuando se desactive la tecla.

Para recuperar información de estado de una clave individual, use la función GetKeyState . Para recuperar el estado actual de una clave individual, independientemente de si el mensaje de teclado correspondiente se ha recuperado de la cola de mensajes, use la función GetAsyncKeyState .

Una aplicación puede usar las constantes de código de clave virtual VK_SHIFT, VK_CONTROL y VK_MENU como índices en la matriz a la que apunta lpKeyState. Esto proporciona el estado de las teclas MAYÚS, CTRL o ALT sin distinguir entre izquierda y derecha. Una aplicación también puede usar las siguientes constantes de código de clave virtual como índices para distinguir entre las instancias izquierda y derecha de esas claves:

VK_LSHIFT
VK_RSHIFT
VK_LCONTROL
VK_RCONTROL
VK_LMENU
VK_RMENU
 

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

Requisitos

   
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
Conjunto de API ext-ms-win-ntuser-rawinput-l1-1-0 (introducido en Windows 10, versión 10.0.14393)

Consulte también