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的命令行程序。大家可以从这里下载:

http://www.box.net/shared/gxv5mqze5j

使用也很简单:

numlockz /on  打开numLockz键

numlockz /off 关闭numlockz键

numlockz /print 显示注册表键值

设置后需要大家按下numlock键并重启机器。

 

参考资源:

http://social.answers.microsoft.com/Forums/en-US/w7hardware/thread/7b48ae6f-fa9c-4bc2-8359-81e0c5e5d6a2

http://www.askvg.com/force-capslock-numlock-and-scrolllock-keys-behavior-using-windows-registry/

posted @ 2010-08-28 02:18  林杰的博客  阅读(12543)  评论(0编辑  收藏  举报