winuser.h


GetAsyncKeyState

La función GetAsyncKeyState determina si una tecla está o no pulsada en el momento en que la función es invocada, y si la tecla fue presionada después de una llamada previa a la función GetAsyncKeyState.

Sintaxis

SHORT GetAsyncKeyState(
    int vKey  // código de tecla virtual
   );

Parámetros

vKey: especifica uno de los 256 códigos de tecla virtual posibles.

Windows NT: se pueden usar constantes prefijas de derecha e izquierda para especificar ciertas teclas. Ver la sección de observaciones para mayor información.

Windows 95: Windows 95 no soporta las constantes prefijas de derecha e izquierda disponibles en Windows NT.

Valor de retorno

Si la función tiene éxito, el valor de retorno especifica si la tecla fue pulsada desde la última llamada a GetAsyncKeyState, y si la tecla está actualmente pulsada o no. Si el bit más significativo está activo, la tecla está pulsada, y si el de menor peso está activo, la tecla fue pulsada después de la llamada previa a GetAsyncKeyState. El valor de retorno es cero si una ventana en otro hilo o en el proceso actual tiene el foco del teclado.

Windows 95: Windows 95 no soporta constantes prefijas de dereche e izquierda. Si se invoca la función GetAsyncKeyState en la plataforma Windows 95 con esas constantes, el valor de retorno será cero.

Observaciones

Se pueden usar las constantes de códigos de teclas virtuales VK_SHIFT, VK_CONTROL y VK_MENU como valores para el parámetro vKey. Esto proporciona el estado de las teclas de Mayúsculas, Control o ALT sin distinguir entre derecha e izquierda.

Windows NT: se pueden usar las siguientes constantes de códigos de teclas virtuales como valores para vKey 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 sólo cuando se llama a las funciones GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState y MapVirtualKey.

Windows 95: Windows 95 no soporta estas constantes de distinción entre izquierda y derecha, y devuelve 0 cuando se usan.

La función GetAsyncKeyState también trabaja con los botones del ratón. Sin embargo, verifica el estado de los botones físicos del ratón, no el del los lógicos en el que se mapean los físicos. Por ejemplo, llamar a GetAsyncKeyState(VK_LBUTTON) siempre devuelve el estado del botón físico izquierdo del ratón, que puede estar mapeado al botón lógico izquierdo o derecho. Se puede determinar el mapeo actual del sistema para los botones físicos a lógicos mediante una llamada a:

GetSystemMetrics(SM_SWAPBUTTON)

Que devuelve TRUE si los botones del ratón están intercambiados.