ВОЗМОЖНОЕ РЕШЕНИЕ
Я получил эту идею и первоначальную логику VBS от TechNet - Scripting Guy, а затем просто внёс некоторые небольшие изменения в логику VBS и превратил ее в динамически создаваемый пакетный скрипт, работающий в цикле. Он запускается по мере необходимости и может быть легко и по необходимости убит без необходимости установки, если у вас уже есть Microsoft Office Word на вашем компьютере (я уверен, что есть способ разместить компоненты Office на вашем ПК без необходимости хотя лицензионное программное обеспечение установлено).
Просто сохраните приведенную ниже логику пакетного сценария в текстовом файле на рабочем столе и т.д. И назовите его как <something>.cmd
, а затем просто дважды щелкните по нему, чтобы запустить. Наблюдайте, как индикатор Num Lock на клавиатуре переключается каждые X секунд, пока вы говорите, что он работает (я установил его на 5 в примере сценария).
Просто сверните окно командной строки, когда оно работает, и просто закройте окно командной строки с "X", когда вы будете готовы прекратить работу, если ваш ПК больше не будет включать Num Lock, если он случайно выключен.
Динамическая 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