我现在这个笔记本电脑没有NumLock指示灯,有时候用小键盘经常打不出数字来,非常苦恼。
尤其Caps和Scroll键状态对我来说不需要,我不想为此多花费一丁点CPU资源:)
因此自己做了一个功能专一的小工具~
软件运行后就会在右下角显示一个图标,对号是开,叉号是关,没有界面,只有图标,不能多开。
NumLock状态变化时可以实时显示,鼠标点击图标就可以退出程序。
开发介绍:
Winform做的,.net framework 版本是2.0,上面的是Release版本,内存占用大约10M,CPU占用可以忽略……
该软件需要在 .Net 环镜下才能运行,请安装 .NET Framework V2.0 可再发行组件包: http://www.cr173.com/soft/2572.html
Numlock介绍:
Num,是Number(数字)的缩写。 lock是锁的意思。Numlock,就是指锁住数字。(锁定/解锁小键盘)如果在键盘上取消Numlock键,那么无法使用小键盘上面的数字。numlock按键灯亮时,可以使用小键盘上的数字,如果熄灭时则不能使用。
核心逻辑:
需要在NumLock键按下的时候实时捕捉到变化,因此下了全局钩子;
但是却不可以通过按键来判断状态的变化(键盘键位的按下和弹起对NumLock状态的变化影响情况比较复杂),
还是要读键盘码状态比较稳定,因此还需要有一个循环去读。
但是循环一直进行,在性能方面不是好的思路,因为很多时候大家都不会去按NumLock。
循环空转是不好的,因此我是在钩子捕捉到NumLock按下的时候马上启动一个持续4秒的循环,每秒读50次状态(绝对够精准了……)。