我想在。net 7控制台应用程序中检查电池状态。我怎样才能干净利落地做到这一点呢?
What I tried:
-
我已经检查了Microsoft Docs中提到的Windows。. net 7中不支持的表单:https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.powerstatus?view=windowsdesktop-7.0.
-
另一种方法是使用Windows系统信息并提取它,但是在Windows中可能有更好的/内置选项。
对于。net 6+(当然包括。net 7),我编写了一个围绕win32系统电源状态api的包装器。我的代码不仅以一种方便的方式包装GetSystemPowerStatus
(它给出了电池和电源状态的快照),而且还允许您订阅操作系统事件,以便在以下情况下通知:
- 电源变化
- 电池百分比变化
- 电池保护程序打开/关闭
- 当前监视器显示状态变化
- 盖子打开/关闭
- 电源方案变化
- 主监视器打开/关闭
- 会话显示状态改变
- 系统进入/离开"模式">
- 系统未空闲
- 用户处于/非活动状态
https://www.nuget.org/packages/PowerStatus