Skip to content

顶部硬件监控条 v1.0.0

Choose a tag to compare

@leerogerstheman leerogerstheman released this 29 Sep 09:55
· 1 commit to main since this release

顶部硬件监控条 v1.0.0

在屏幕顶部正中用 1~2 行显示实时硬件状态的小工具。显示哪些数据、放第几行、什么顺序、
叫什么名字,全部在设置界面里点;默认鼠标穿透不挡操作,鼠标移上去时强烈淡化。

效果图

能显示什么

  • CPU — 温度(读 MSR,读不到时退回 ACPI 热区)、占用率、频率、功耗、风扇转速
  • GPU — 温度、热点温度、占用率、功耗、风扇转速、显存占用(走 NVAPI,不需要管理员)
  • 内存 / 显存 — 已用 / 总量、占用率
  • 网速 — 实时上下行,自动挑流量最大的网卡(也可指定或全部合计)
  • 显示 — 显示器刷新率,以及用 DXGI 桌面复制实测的实时帧率
  • 任意传感器 — LibreHardwareMonitor 枚举到的每个传感器都能单独加到条上

安装

  1. 下载下面的 SysMonitorBar-1.0.0-win-x64.zip,解压到任意目录
  2. 安装 .NET 8 桌面运行时(只装 Runtime,不需要 SDK)
  3. 双击 启动-管理员.cmd

也可以双击 启动.cmd 免提权运行,CPU 温度 / GPU / 内存 / 显存 / 网速 / 刷新率 / 帧率 都正常,
只有依赖内核驱动的那几项读数会缺席。

已知限制

  • CPU 温度:读 MSR 需要管理员权限、且内核驱动能成功加载。两者都不满足时会自动退回 ACPI 热区(免管理员,但读的是主板热敏电阻,数值偏低、变化也更迟钝)
  • 风扇转速:只有硬件真的暴露了传感器才会出现。大量笔记本(包括开发这台 i9-11900H + RTX 3060 Laptop)压根没有风扇传感器,nvidia-smi --query-gpu=fan.speed 返回 [N/A] 是正常的
  • 实时帧率:桌面完全静止时显示 0;独占全屏游戏和远程桌面会话下测不到(此时该项自动隐藏)。想要一直有数就用「刷新率」
  • 界面目前只有中文(每一项的显示名都可以自己改成任意文字)

实测数据

在 Windows 11 24H2 (build 26200) / i9-11900H + RTX 3060 Laptop 上验证:

项目 数值
内存占用 约 130–160 MB(其中自身代码的托管堆只有 5 MB,其余是 .NET 运行时 + LibreHardwareMonitor + D3D11)
CPU 占用 约单核 4.7%(全机 0.29%)
分配速率 162 KB/s,22 秒内 Gen0 GC 0 次
长时间稳定性 10 分钟采样,私有字节恒定 105.2 MB、句柄稳定,无泄漏

说明

  • 框架依赖发布,所以需要 .NET 8 桌面运行时;不想要这个依赖可以自行 dotnet publish --self-contained,产物约 150 MB
  • 完整文档、配置项说明、以及开发过程中踩过的坑(COM 对象生命周期、CreateParams 覆盖扩展样式、批处理编码…)都在 README