4

Before I continue, let me say that this is not a question about Num Lock turning off after boot. I've already made a fix for that. My issue is that Num Lock refuses to stay on while I'm using my laptop.

Scenario: I log in to my Acer Aspire F5-572-57T8 laptop and am presented with my desktop. Num Lock is on and all is normal. Some time (probably 5-10 minutes, haven't tested to see if it's the same interval each time) after I've stopped using the number pad, however, Num Lock disables itself. I try to type a number, notice that Num Lock is off, and hit the button, restarting the cycle.

Does anyone have any clue what causes this and if there's a way to stop it?

Drew Stewart
  • 185
  • 2
  • 3
  • 12
  • 1
    In case you find this helpful any at all see my response here: http://superuser.com/questions/1027228/is-it-possible-to-have-num-lock-always-on-without-the-ability-of-the-num-lock-k/1028683#1028683 or the other answers for that matter. Not sure if this will answer the WHY but it MAY be a solution you could apply potentially. – Vomit IT - Chunky Mess Style May 02 '16 at 16:15
  • I'll check to see if this works as a solution. If it does, you can post an answer and I'll accept it. – Drew Stewart May 02 '16 at 16:18
  • 1
    It works well enough for me. I was able to make the solution more seamless and unnoticeable. Since I have RBTray, I can simply minimize the command prompt window to the tray, where it's out-of-sight and out-of-mind. Post your answer and I'll accept it after the two day wait period. :P – Drew Stewart May 02 '16 at 16:25
  • 1
    For what it's worth, I've made a few changes to the script that provide a little more output to the confused, and should minimize the amount of disk writes. You've been credited in the source code. :P [Pastebin link](http://pastebin.com/vQRk9Bvs) – Drew Stewart May 02 '16 at 16:57

2 Answers2

6

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.

user599335
  • 61
  • 1
  • 1
  • 2
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
Vomit IT - Chunky Mess Style
  • 40,038
  • 27
  • 84
  • 117