GetKeyboardState
The GetKeyboardState
function copies the status of the 256 virtual keys to the specified buffer.
BOOL GetKeyboardState(
PBYTE lpKeyState |
// address of array
to receive status data |
); |
|
Parameters
lpKeyState
Points to the
256-byte array that will receive the status data for each virtual key.
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero. To get extended error information,
call GetLastError
Remarks
An
application can call this function to retrieve the current status of all the
virtual keys. The status changes as a thread removes keyboard messages from its
message queue. The status does not change as keyboard messages are posted to
the message queue.
When the
function returns, each member of the array pointed to by the lpKeyState
parameter contains status data for a 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.
To retrieve
status information for an individual key, use the GetKeyState
An
application can use the virtual-key code constants VK_SHIFT, VK_CONTROL and
VK_MENU as indices into the array pointed to by lpKeyState. This gives the
status of the SHIFT, CTRL, or ALT keys without distinguishing between left and right.
An application can also use the following virtual-key code constants as indices
to distinguish between the left and right instances of those keys:
VK_LSHIFT |
VK_RSHIFT |
VK_LCONTROL |
VK_RCONTROL |
VK_LMENU |
VK_RMENU |
These left-
and right-distinguishing constants are available to an application only through
the GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState,
and MapVirtualKey functions.
See Also