You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows系统下反转NumLock指示灯的状态?

如何在Windows系统下反转NumLock指示灯的状态?

我完全懂你的痛点——NumLock常开时那个亮得没法调暗的指示灯确实恼人,想让它状态反转(NumLock关闭时灯亮、开启时灯灭),用软件方法就能实现,下面给你几种靠谱的方案:

方案一:AutoHotkey脚本(最直观易用)

AutoHotkey是Windows上免费的自动化工具,用它写个小脚本就能轻松实现需求:

  • 先安装AutoHotkey(直接去官网下载安装即可,是很成熟的工具)
  • 右键新建一个文本文件,把后缀改成.ahk,打开后粘贴以下代码:
#Persistent
SetTimer, ToggleNumLockLED, 300 ; 每300毫秒检查一次状态,确保同步

ToggleNumLockLED:
currentState := GetKeyState("NumLock", "T") ; 获取NumLock的实际功能状态
; 反转指示灯:先通过切换NumLock改变灯的显示,再切回恢复原功能
if (currentState = 1) {
    SetNumLockState, Off
    Send {NumLock}
} else {
    SetNumLockState, On
    Send {NumLock}
}
return
  • 保存后双击运行脚本,它会在后台悄悄工作,你就能看到NumLock的指示灯状态和实际功能反转了。如果想开机自动运行,把这个脚本文件拖到「启动」文件夹即可(按Win+R输入shell:startup就能打开)。

方案二:PowerShell脚本+任务计划(纯系统工具实现)

如果你不想装第三方工具,用Windows自带的PowerShell也能实现,步骤稍复杂但完全依赖系统自带功能:

  • 新建一个PowerShell脚本文件(后缀.ps1),内容如下:
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Keyboard {
    [DllImport("user32.dll")]
    public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
}
"@

# NumLock的虚拟键码是0x90
$numLockKey = 0x90
$keyDown = 0x0000
$keyUp = 0x0002

# 获取当前NumLock的实际功能状态
$currentState = [Console]::NumberLock

# 反转指示灯:先切换NumLock改变灯状态,再切回恢复原功能
if ($currentState) {
    [Keyboard]::keybd_event($numLockKey, 0, $keyDown, [UIntPtr]::Zero)
    [Keyboard]::keybd_event($numLockKey, 0, $keyUp, [UIntPtr]::Zero)
    Start-Sleep -Milliseconds 50
    [Keyboard]::keybd_event($numLockKey, 0, $keyDown, [UIntPtr]::Zero)
    [Keyboard]::keybd_event($numLockKey, 0, $keyUp, [UIntPtr]::Zero)
} else {
    [Keyboard]::keybd_event($numLockKey, 0, $keyDown, [UIntPtr]::Zero)
    [Keyboard]::keybd_event($numLockKey, 0, $keyUp, [UIntPtr]::Zero)
    Start-Sleep -Milliseconds 50
    [Keyboard]::keybd_event($numLockKey, 0, $keyDown, [UIntPtr]::Zero)
    [Keyboard]::keybd_event($numLockKey, 0, $keyUp, [UIntPtr]::Zero)
}
  • 打开「任务计划程序」,创建一个新任务:
    • 触发器:选择「登录时」,再添加一个「重复任务」,设置每1分钟重复一次(确保状态同步)
    • 操作:选择「启动程序」,程序或脚本选powershell.exe,添加参数-ExecutionPolicy Bypass -File "你的脚本文件完整路径.ps1"
    • 设置:勾选「不管用户是否登录都要运行」,并开启「允许最高权限运行」
  • 保存任务后,下次登录系统时脚本就会自动运行,定时同步指示灯的反转状态。

小提醒

  • AutoHotkey脚本运行时会在系统托盘显示小图标,右键可暂停或退出
  • PowerShell脚本如果遇到权限问题,管理员身份打开PowerShell输入Set-ExecutionPolicy RemoteSigned即可解除限制

备注:内容来源于stack exchange,提问作者danliukuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:07:59