for my self i prefer this code:
Global Const $VK_NUMLOCK = 0x90
Global Const $VK_SCROLL = 0x91
Global Const $VK_CAPITAL = 0x14
Func _LockKeyGetState($KeyHex)
Local $ret
$ret = DllCall("user32.dll","long","GetKeyState","long",$KeyHex)
Return $ret[0]
EndFunc
e. g. numlock:
_LockKeyGetState($VK_NUMLOCK)
or
_LockKeyGetState(0x90)
It will return 1 if activated and 0 if not