Tuesday, June 10, 2008

Enabling the NumLock Key

You can control whether the NumLock key is automatically on or off at logon using the following Windows NT / Windows 2000 / Windows XP registry hack:
Hive: HKEY_CURRENT_USERKey: Control Panel\KeyboardName: InitialKeyboardIndicatorsType: REG_DWORDValue: 0 NumLock disabled for current user after logging onValue: 2 NumLock enabled and will retain the settings from the last shutdown
Numlock doesn't reflect these setting during the logon phase because at that point, NT is using the .Default user profile since it does not know which user is logging on. Make the same changes to HKEY_USERS\.DEFAULT\Control Panel\Keyboard if you want the numlock state to be consistent throughout.
The best, and non-registry editing method to set InitialKeyboardIndicators, is to set numlock on, then use Alt-Ctrl-Del to log off. It should remember state for the account.
Its usually best to avoid registry hacks if possible. You can use the following Windows Script, name it numlock.vbs, to control numlock:


set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "{NUMLOCK}"

For an individual user, copy numlock.vbs to the user's startup folder. To get the script to run for all users, put the script in the Startup folder in the All Users profile.
In a Windows 2000 environment, you can control this functionality with Group Policy.