Num Lock refuses to stay on

Solution 1:

POSSIBLE SOLUTION

I got this idea and the initial VBS logic from TechNet - Scripting Guy and just made some small VBS logic adjustments and turned it into a dynamically built batch script that runs in a loop. It runs as-needed and can be killed easily and as-need with no installation required assuming you already have Microsoft Office Word on your PC (I'm sure there's a way to put the Office components on your PC without actually needing to have the licensed software installed though).

Just save the below batch script logic to a text file on the desktop, etc. and name it to <something>.cmd, and then simply double-click it for it to run. Watch the Num Lock light on your keyboard toggle on every X seconds as you tell it to run (I set it to 5 in the example script).

Simply minimize the command prompt window when it's running, and simply close that command prompt window with the "X" when you're ready to stop if from running for your PC to no longer turn Num Lock on if it's accidentally turned off.

Dynamic VBS Batch Script Logic

@ECHO OFF
SET TempVBSFile=%tmp%\~tmpSendKeysTemp.vbs
SET PauseSeconds=5

:VBSDynamicBuildLoop
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set objWord = CreateObject("Word.Application")              >>"%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell")        >>"%TempVBSFile%"
ECHO Wscript.Sleep %PauseSeconds%000                             >>"%TempVBSFile%"
ECHO.                                                            >>"%TempVBSFile%"
ECHO If objWord.NumLock = 0 Then                                 >>"%TempVBSFile%"
ECHO    WshShell.SendKeys "{NUMLOCK}"                            >>"%TempVBSFile%"
ECHO End If                                                      >>"%TempVBSFile%"
ECHO.                                                            >>"%TempVBSFile%"
ECHO objWord.Quit                                                >>"%TempVBSFile%"

CSCRIPT //nologo "%TempVBSFile%"
GOTO VBSDynamicBuildLoop

Solution 2:

I had the same problem, fixed it by going to the Device Manager > Human Interface Devices > USB Input Device. I had three of those USB entries, for each I double clicked, went to the last tab, and disabled the ability to turn off the device. Then clicked OK. If this doesn't wake up your keyboard, turn on the checkbox again, OK, then skip to the next USB device. For me it was the last one... Confirming instantly turned my keyboard's NUMLOCK back on.

This may be a problem that's specific to Microsoft-branded keyboards, BTW.