Windows沙拉:开机时自动打开NumLock键背后的故事
我使用的笔记本是Lenovo E23,这个电脑开机启动时NumLock键不知怎么回事变成启动的,很不方便。每次都要按一下Fn+NumLK键,实在是烦人。 作为一个高效的程序员,怎么能每天重复这件事情的?一番搜索后,我找到了解决办法,分享给大家。
NumLock键启动就亮的原理
在Windows系统启动时,它会从注册表下面读一个键值,然后根据这个键值的内容来决定是否启动NumLock键、CapsLK键、ScrLock键等。
这个键值是:
InitialKeyboardIndicators
它是REG_SZ类型,内容的含义是:
0 - Turn all indicators Off (NumLock, CapsLock, ScrollLock)
1 - Turn CapsLock On
2 - Turn NumLock On
3 - Turn CapsLock and NumLock On
4 - Turn ScrollLock On
5 - Turn CapsLock and ScrollLock On
6 - Turn NumLock and ScrollLock On
7 - Turn all indicators On (NumLock, CapsLock, ScrollLock)
也就是说:设置为0 则关闭NumLock键,设置为2则开启NumLock键。
但是这个键值在用户登录前和登录后读取的路径是不一样的。
用户登录前的NumLock
在登录用户前,Windows是根据
HKEY_USERS\.Default\Control Panel\Keyboard 下InitialKeyboardIndicators
的内容来决定是否开启这些键值的。
注意:有些Win机器上是2147483648,即十六进制的0x80000000,最后一个位有效,即表示0的意思。
用户登录后的NumLock
在一个用户登录后,Windows是根据
HKEY_CURRENT_USER\Control Panel\Keyboard 下InitialKeyboardIndicators
的内容来决定是否开启这些键值的。
注意:Windows7在关机时会自动保存当前NumLock键的状态的,也就是你自己改无效,反正关机时它会再根据NumLock键的状态覆盖你设置的内容。
解决方案: 开机打开NumLock键
1.设置 HKEY_USERS\.Default\Control Panel\Keyboard 下InitialKeyboardIndicators 为2
2.关机前打开NumLock键
3.重启
解决方案: 开机不打开NumLock键
1.设置 HKEY_USERS\.Default\Control Panel\Keyboard 下InitialKeyboardIndicators 为0
2.关机前关闭NumLock键
3.重启
NumLockZ
为了方便设置,我写了一个NumLockZ的命令行程序。大家可以从这里下载:
使用也很简单:
numlockz /on 打开numLockz键
numlockz /off 关闭numlockz键
numlockz /print 显示注册表键值
设置后需要大家按下numlock键并重启机器。
参考资源:
http://www.askvg.com/force-capslock-numlock-and-scrolllock-keys-behavior-using-windows-registry/
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名和链接(http://greenerycn.cnblogs.com).
如果觉得文章有用,愿意的话赞助一杯饮料吧,谢谢。