LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I detect status of NUM LOCK and CAPS LOCK keys?

Hi,

I'm running LabWindows CVI V5.5 on Windows 98 and I would like to add
a status bar to my application that indicates the toggle status of the
CAPS LOCK and NUM LOCK keys. I am using InstallMainCallback to call a
function that should check for the keyboard key events that are not
swallowed by other routines. This works for the ASCII keys and the
pressed key is determined by reading the value of the 'eventData1'
parameter when the 'event' parameter is set to EVENT_KEYPRESS.
However, EVENT_KEYPRESS does not seem to apply to virtual keys. Is
there a way to detect the status of the CAPS and NUM LOCK keys?

Thanks in advance,
John.
0 Kudos
Message 1 of 3
(5,563 Views)
Use GetKeyState from the Windows SDK.

"The GetKeyState function retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled (on, off�alternating each time the key is pressed).

SHORT GetKeyState(
int nVirtKey // virtual-key code
);
Parameters
nVirtKey
[in] Specifies a virtual key. If the desired virtual key is a letter or digit (A through Z, a through z, or 0 through 9), nVirtKey must be set to the ASCII value of that character. For other keys, it must be a virtual-key code.
If a non-English keyboard layout is used, virtual keys with values in the range ASCII A through Z and 0 through 9 are used to specify most of the character keys. For example, for the German keyboard layout, the virtual key of
value ASCII O (0x4F) refers to the "o" key, whereas VK_OEM_1 refers to the "o with umlaut" key.

Return Values
The return value specifies the status of the specified virtual key, as follows:

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. "
Message 2 of 3
(5,563 Views)

I can detect the Caps Lock key press state as mentioned above, but how do I detect a Caps Lock key press event without continuously polling to see if it is pressed?

0 Kudos
Message 3 of 3
(3,810 Views)