winuser.h


GetKeyState

La función GetKeyState recupera el estado de la tecla virtual especificada. El estado especifica si la tecla está pulsada, no pulsada o bloqueda (bloqueada/no bloqueada, alternando cada vez que la tecla es presionada).

Sintaxis

SHORT GetKeyState(
    int nVirtKey  // código de tecla virtual
   );

Parámetros

nVirtKey: especifica una tecla virtual. Si la tecla virtual indicada es una letra o un dígito (A -Z, a -z ó 0 - 9), nVirtKey debe ser el valor ASCII de ese carácter. Para otras teclas, debe ser un código de tecla virtual.

Si se usa un diseño de teclado no inglés, las teclas virtuales con valores en el rango ASCII A a Z y 0 a 9 se usan para especificar la mayoría de las teclas de caracteres. Por ejemplo, para el diseño del teclado alemán, la tecla virtual de valor ASCII O (0x4F) se refiere a la tecla "o", mientras que VK_OEM_1 se refierea a la tecla "o con umlaut".

Valor de retorno

Si la función tiene éxito, el valor de retorno especifica el estado de la tecla virtual dada. Si el bit de mayor peso es 1, la tecla está pulsada; en caso contrario, no. Si el bit de menor peso es 1, la tecla está bloqueada. Una tecla, como la de Bloqueo de Mayúsculas, está bloqueada si está activa. La tecla está desactivada y desbloqueada 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á.

Observaciones

El estado de tecla devuelto por esta función cambia si un hilo dado lee los mensajes desde la cola de mensajes. El estado no refleja el estado de nivel de interrupción asociado con el hardware. Usar la función GetAsyncKeyState para recuperar esa información.

Una aplicación llama a GetKeyState como respuesta a un mensaje de entrada de teclado. Esta función recupera el estado de la tecla cuando el mensaje de entrada fue generado.

Para recuperar la información de estado paora todas las teclas virtuales, usar la función GetKeyboardState.

Una aplicación puede usar las constantes de tecla virtual VK_SHIFT, VK_CONTROL y VK_MENU como valores para el parámetro nVirtKey. 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 valores para nVirtKey para distinguir entre las variantes izquieda 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.