Normally when you setup your BIOS to have num lock on when starting up, Windows 7 should keep it on when the login screen appears. However if you don’t have this option in the BIOS or if you have turned it on now but it remains disabled at login screen or after logging in, here are detailed instructions.
Make sure you are an administrator user, when opening the registry editor you have to allow it to open when UAC is on. You have to click continue in the prompt.
1) Open up the registry editor (type regedit in the run/search field).
2) First click in the navigation (left-hand-side) on the top item named computer.
3) Now click search in edit menu.
4) Search for “InitialKeyboardIndicators” (no quotes).
Wait a bit while it is searching.
The first result is “HKEY_CURRENT_USER\Control Panel\Keyboard” this is for the num-lock status once logged in for the current user (YOU). You need to set this to value 2. Adjust if necessary.
Press F3 to continue searching.
Wait a bit while the search continues.
The next item on my computer does not contain an numerical value.
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\win.ini\Windows” the value for this is “USR:Control Panel\Keyboard” leave this alone.
Press F3 to continue searching.
Wait a bit while the search continues.
The next one is again like the previous (64bit system).
“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\IniFileMapping\win.ini\Windows” the value for this is “USR:Control Panel\Keyboard” leave this alone.
Press F3 to continue searching.
Wait a bit while the search continues.
The next item for me is “HKEY_USERS\.DEFAULT\Control Panel\Keyboard” I believe this to be the item responsible for the log-in screen. Set this to 2 if not already. On some computers the value is something like “2147483648” a long numerical value, no idea why, just set it to 2.
Press F3 to continue searching.
Wait a bit while the search continues.
Items that are now found are, as far as I know, for other users known on the system. On my system I find these for example. “HKEY_USERS\S-1-5-18\Control Panel\Keyboard”
“HKEY_USERS\S-1-5-19\Control Panel\Keyboard” & “HKEY_USERS\S-1-5-20\Control Panel\Keyboard” & “HKEY_USERS\S-1-5-21-********-********-********-1000\Control Panel\Keyboard”. Much depends on how many local users and if the computer is member of a domain like in business environments.
If you are unsure just set all items which have a numerical value to 2.
On some systems I have encountered another non numerical value item that, if it’s not numerical just skip it.
When you have finished searching the registry you get a pop-up saying if has finished.
I hope this helps you.