Skip to content
CrucialmerPublic

About

系统托盘显示数字小键盘(NumLock)状态,支持保持常开 · 自动更新 · macOS 风格菜单 · 高 DPI(100%–400%,4K/8K)· C# / .NET 10 WinForms · 单文件免安装

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Numlock

在系统托盘实时显示数字小键盘(NumLock)开关状态的小工具,支持将 NumLock 保持常开。

C# / .NET 10 WinForms 编写,单文件绿色免安装,超轻量小包设计(约 176 KB)。自身不捆绑臃肿引擎,借用系统官方 .NET 10 运行时,自动无感享受 Windows Update 升级优化,真正零残留绿色便携。

托盘图标状态

功能

  • 托盘状态显示:键帽图标实时反映 NumLock 状态——实心键帽 = 开启,描边键帽 = 关闭,右下角绿点 = 保持常开模式。
  • 保持常开(核心功能):开启后
    • 拦截键盘上的 NumLock 键,按了也不会关闭;
    • 每 300ms 看护一次状态,被其他程序关掉也会自动恢复为开启;
    • 程序启动时若 NumLock 处于关闭状态,立即自动恢复。
  • 双击托盘图标:快速切换 NumLock(保持常开模式下会提示先关闭该选项)。
  • 开机自动启动:写入 HKCU\...\CurrentVersion\Run,无需管理员权限。
  • 图标颜色:自动跟随系统主题,也可手动指定白色/黑色图标。
  • macOS 风格精致紧凑菜单:右键菜单采用 12px 粗体(Weight 700)微交互排版,圆角面板、圆角蓝色高亮、自绘矢量勾选/分隔线/子菜单箭头,界面紧凑轻盈,配色随系统明暗动态切换。
  • macOS 26 设计美学与多阶排版:全面采用 Squircle 连续曲率圆角矩形、DWM 瞬态亚克力毛玻璃材质(Transient Acrylic)、经典交通灯红点关闭控制与全窗平滑拖拽移动;弹窗与卡片建立 22px / 16px / 14px / 12px 层次丰富的字阶阶梯,全面采用纯 GDI+ 抗锯齿矢量渲染,杜绝任何 ClearType 边缘重影。
  • 全尺寸高 DPI 适配(最高 8K 显示器,DPI 384+):完整适配 Per-Monitor V2 并在所有弹窗中实现 OnDpiChanged 跨屏漫游动态重算;在 100%(96 DPI)、200%(4K 192 DPI)直至 400%(8K 384 DPI)高精显示器下均保持清晰锐利、无裁切、无失真。
  • 单实例运行:重复启动只会提示“已在运行”。
  • 自动更新:启动后会检查新版本(可在菜单里关闭),发现新版本自动下载并校验;下载完成后在退出时静默替换,下次启动即新版本。若上次是关机/注销结束(来不及替换),下次打开程序会自动完成替换并重启一次(无需任何操作);也可在菜单里选“重启并更新”立即生效。更新完成后会有一次“已更新到 X”的提示。
  • 独立软件更新窗口:采用 macOS 风格独立居中卡片,告别 Windows 原生弹窗;下载阶段内嵌 6px 细长圆角胶囊进度条与 已下载 XX.X MB / XX.X MB (XX%) 实时速率与数据量刷新(50ms / 20 FPS 流式节流渲染),支持随时取消与一键重启更新。
  • 真正零残留便携模式:配置持久化于程序所在目录 config.json,删除软件文件夹即彻底清空系统无残留(只读保护环境自动安全回退至 %AppData%\Numlock)。

联网说明

除“检查更新/下载更新”外,程序不进行任何网络通信(不联网、无遥测、不采集任何数据)。更新检查默认在启动后自动进行一次,也可在菜单里点击“检查更新…”随时检查。

截图

(截图由程序自带的自检模式渲染生成。)

深色任务栏(白色图标):

深色任务栏

浅色任务栏(黑色图标):

浅色任务栏

右键菜单(浅色 / 深色):

浅色菜单

深色菜单

关于软件窗口(macOS 26 风格独立卡片):

浅色关于窗口

深色关于窗口

软件更新窗口(macOS 26 风格独立卡片):

浅色更新窗口

深色更新窗口

应用图标:

图标

使用方法

  1. 从 Releases 下载 Numlock.zip 并解压(极简小包,仅约 176 KB;解压出 Numlock\ 文件夹)。
    • 极致轻量:单文件 exe 仅约 350 KB,直接借用系统已安装的官方 .NET 10 Desktop Runtime,自动无缝享受 Windows Update 静默推送的 .NET 10 安全补丁与 JIT 提速优化,无需重新下载软件。
  2. 双击 Numlock\Numlock.exe 运行(SmartScreen 提示时选择“仍要运行”)。
  3. 托盘出现键帽图标后即可使用;双击图标切换,右键图标打开精致紧凑的 macOS 风格菜单。

发布页附有 zip 的 SHA-256,可用 certutil -hashfile Numlock.zip SHA256 核对下载完整性。

从源码构建

需要 .NET SDK 10.0+:

dotnet build Numlock.csproj -c Release

发布免安装单文件极简版(约 350 KB):

dotnet publish Numlock.csproj -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false -o publish

或直接运行 publish.cmd(自动编译、运行自动化自检门禁并打包免安装 zip Numlock.zip 及其 SHA256 校验和)。

命令行参数(开发用)

  • --selftest <目录>:无头自检(需先退出正在运行的托盘实例)。渲染图标/菜单/预览 PNG 并做像素检查,实测 SendInput 切换与“保持常开”看护,并断言按键拦截判定与配置解析容错。
  • --genico <路径>:生成多尺寸应用图标 assets/Numlock.ico。
  • --check-update:命令行检查更新(退出码 0=已最新、1=有新版本、2=检查失败;无控制台时以退出码为准)。
  • --apply-update <目标exe> <旧进程ID> [--restart]:更新辅助模式(由程序自身在退出时调用,一般不手动使用)。

配置文件(真正零残留便携模式)

设置默认保存在软件所在目录下的 config.json(解压即用、删除整个软件文件夹即彻底清空,系统零残留)。若放置在只读受保护目录(如 C:\Program Files\),则自动安全降级保存至 %AppData%\Numlock\config.json:

{
  "EnforceNumLock": false,
  "IconColorMode": "auto"
}
  • EnforceNumLock:true = 保持常开;false = 关闭(默认)。
  • IconColorMode:auto(跟随系统)/ white(白色图标)/ black(黑色图标);非法值自动按 auto 处理。
  • CheckUpdatesOnStart:true = 启动后自动检查更新(默认);false = 只在菜单里手动检查。
  • UpdateNotifiedVersion:最近一次已提示过的更新版本(同一版本只提示一次;一般无需手动修改)。

文件损坏或无法解析时会自动恢复默认值,并把原文件备份为 config.json.bad。

程序遇到内部错误时会在同目录另写 error.log(仅排障用,可随时删除;超过 256KB 会自动重写)。

系统要求

  • Windows 10 / 11(x64)。
  • 高 DPI 友好:100%–400% 缩放(含 4K / 8K 显示器与混合缩放多屏)。
  • 自包含发布版无需任何运行时;源码构建需要 .NET SDK 10.0+。

已知限制

  • “保持常开”在极端情况下(被高权限窗口拦截、系统回收钩子等)会降级为约 300ms 的自动纠偏(按键可能闪断),程序会气泡提示,功能不中断。
  • 未做代码签名:首次运行时 SmartScreen 提示属正常现象(选择“仍要运行”)。
  • 个别安全软件可能对键盘钩子机制给出提示,属其启发式判断。
  • 自动更新需要能写入程序所在目录;放在只读位置(如某些 U 盘/受保护目录)时,程序会提示改为手动下载。

许可

GPL-3.0

About

系统托盘显示数字小键盘(NumLock)状态,支持保持常开 · 自动更新 · macOS 风格菜单 · 高 DPI(100%–400%,4K/8K)· C# / .NET 10 WinForms · 单文件免安装

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages