Windows 電池健康度與即時功耗監測儀表板,使用 WPF 顯示 powercfg /batteryreport、電池驅動資料與可取得的硬體感測值。
- 升級至 .NET 10 LTS。
- 硬體/WMI/Performance Counter 取樣移至背景執行緒,WPF UI 只負責繪製快照。
- 視窗可見時每秒更新;縮至系統托盤後每 5 秒更新,恢復視窗時立即顯示最新快照。
- 新增 BatteryReportParser 單元測試與 Windows GitHub Actions CI。
- 修正文案,明確區分「實測」與「推估」,不再宣稱能取得變壓器額定瓦數。
- 解析 Windows
powercfg /batteryreport。 - 讀取電池驅動提供的設計容量、目前滿電容量、電量、電壓與充放電率。
- 優先使用即時驅動容量計算健康度;不同單位(mAh/mWh)不會混算。
- 電池不存在、韌體未提供循環次數或溫度時,會明確顯示不適用,而不是填入假數值。
- 電池放電/充電功率:電池驅動 IOCTL 實測,代表電池端流入或流出的功率。
- 獨立顯示卡功耗:硬體監測器能提供時使用實測值。
- CPU、iGPU、RAM、螢幕、磁碟、Wi‑Fi 與系統總功耗若沒有可靠硬體來源,不會被線性公式冒充成實測。
- 60 秒波形圖以同一個 W 軸比較放電、充電與獨顯功耗。
Windows 可提供外接電源是否足夠的判定(Adequate/Inadequate/Not Present)。若插電後電池仍在放電,介面會顯示「外接電源不足」與電池端實測缺口。
本程式不宣稱 USB-C 類型或變壓器額定瓦數。這些數值在一般使用者模式下沒有跨硬體可靠的公開 API;可取得的電池充電率也不能證明插頭類型。
最新版本請至 GitHub Releases 下載:
WinBatLens_v1.1.2_Setup_x64.exe:Inno Setup 安裝版。WinBatLens_v1.1.2_Portable_x64.exe:單一可攜執行檔。WinBatLens_v1.1.2_Portable_x64.zip:含執行檔、README 與授權檔的 ZIP。
目前公開發行檔的簽章需由發行者在本機提供 Authenticode 憑證或簽章服務後完成;沒有簽章的檔案可能觸發 Windows SmartScreen 提示。
需求:
- Windows 10/11 x64。
- .NET 10 SDK。
- Inno Setup 6(只在製作安裝版時需要)。
建置與測試:
dotnet restore .\WinBatLens.sln
dotnet build .\WinBatLens.sln -c Release -warnaserror
dotnet test .\tests\WinBatLens.Tests\WinBatLens.Tests.csproj -c Release製作三種發行檔:
powershell -ExecutionPolicy Bypass -File .\build-release.ps1輸出在 dist/。專案的發行設定集中於 WinBatLens.csproj,因此直接執行 dotnet publish 與發行腳本使用相同的 single-file、ReadyToRun 與壓縮設定。
- UI:.NET 10 WPF。
- 電池報告:
Services/BatteryReportParser.cs。 - 電池驅動 IOCTL:
Services/BatteryTelemetryService.cs。 - 即時功耗與 Performance Counter:
Services/RealTimePowerService.cs。 - 背景硬體感測:
Services/HardwareSensorService.cs。 - Windows 電源供應判定:
Services/PowerSupplyService.cs。