# Function Reference

# _WinAPI_GetKeyState

Retrieves the status of the specified virtual key

#include <WinAPISys.au3>
_WinAPI_GetKeyState ( $vKey )

## Parameters

$vKey | Specifies a virtual key ($VK_*). If the desired virtual key is a letter or digit (A through Z, a through z, or 0 through 9).

## Return Value

Returns the value that specifies the status of the specified virtual key. If the high-order bit is 1, the key is
down; otherwise, it is up. If the low-order bit is 1, the key is toggled. A key, such as the
CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0.
A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off
when the key is untoggled.

## Remarks

The key status returned from this function changes as a process reads key messages from its message queue.
The status does not reflect the interrupt-level state associated with the hardware. Use the _WinAPI_GetAsyncKeyState()
function to retrieve that information.

## Related

_WinAPI_GetAsyncKeyState

## See Also

Search GetKeyState in MSDN Library.

## Example

    #include <WinAPISys.au3>
    #include <WinAPIvkeysConstants.au3>

    Local $aOnOff[2] = ['OFF', 'ON']

    ConsoleWrite('NumLock: ' & $aOnOff[BitAND(_WinAPI_GetKeyState($VK_NUMLOCK), 1)] & @CRLF)
    Sleep(1500)
    Send('{NUMLOCK toggle}')
    ConsoleWrite('NumLock: ' & $aOnOff[BitAND(_WinAPI_GetKeyState($VK_NUMLOCK), 1)] & @CRLF)
    Sleep(1500)
    Send('{NUMLOCK toggle}')
    ConsoleWrite('NumLock: ' & $aOnOff[BitAND(_WinAPI_GetKeyState($VK_NUMLOCK), 1)] & @CRLF)