本帖最后由 lynfr8 于 2009-6-12 18:28 编辑
当然有方法啦
1、安装一个摄像头,并对准键盘的Num Lock 的 灯;
2、调用API通过读取Num Lock 灯的亮与灭来确定小键盘是否出于锁定状态
-------------------------------------------------------------------------------------------
呵呵,以上请牛人自测,相信必然能行的通!
-------------------------------------------------------------------------------------------
上面开个小玩笑
其实如果要获取NumLock键状态,可以用API函数GetKeyState来获取
定义外部函数 Function int GetKeyState (int nVirtKey) Library "USER32.DLL"
定义常量 CONSTANT INT VK_NUMLOCK = 144 //0x90
获取NumLock键状态 MessageBox('',GetKeyState(VK_NUMLOCK))
1则为按下,如果为0则为未按下
用au3来表达就是一下代码了:Global Const $VK_NUMLOCK = 0x90
Global Const $VK_SCROLL = 0x91;这个你也可以检测
Global Const $VK_CAPITAL = 0x14
;MsgBox(0,"test",_GetKeyState($VK_CAPITAL))
If _GetKeyState($VK_CAPITAL)=1 then
MsgBox(0,"test",'大小写锁定已打开')
Else
MsgBox(0,"test",'大小写锁定已关闭')
EndIf
If _GetKeyState($VK_NUMLOCK)=1 then
MsgBox(0,"test",'小键盘已打开')
Else
MsgBox(0,"test",'小键盘已关闭')
EndIf
Func _GetKeyState($VK_Code)
Local $ret = DllCall("user32.dll", "long", "GetKeyState", "long", $VK_Code)
Return $ret[0]
EndFunc
至于其他的键盘检测可以参考下这个---键盘鼠标参数表---
传送门:http://www.autoitx.com/viewthr ... omuid=1003#pid33494 |