C#调用"GetSystemPowerStatus"函数获取笔记本电源信息
2022/2/20 9:26:16
本文主要是介绍C#调用"GetSystemPowerStatus"函数获取笔记本电源信息,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
"GetSystemPowerStatus" 此函数检索系统的电源状态。
该状态指示系统是否运行在交流或直流电源、是否电池正在充电时,电池还有多少寿命。
函数原型 BOOL WINAPI GetSystemPowerStatus(__out LPSYSTEM_POWER_STATUS lpSystemPowerStatus);
参数lpSystemPowerStatus指向一个接收状态信息的 SYSTEM_POWER_STATUS 结构指针。
返回值如果函数成功,则返回值为非零值。如果该函数失败,则返回值为零。
要获取扩展的错误的信息,请调用GetLastError 。
函数声明:
BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS lpSystemPowerStatus);
结构体声明:
typedef struct _SYSTEM_POWER_STATUS {
BYTE ACLineStatus;
BYTE BatteryFlag;
BYTE BatteryLifePercent;
BYTE SystemStatusFlag;
DWORD BatteryLifeTime;
DWORD BatteryFullLifeTime;
} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
以下是 C# 演示代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Runtime.InteropServices;
namespace Program
{
public struct PowerStatus
{
public byte ACLineStatus;
public byte BatteryFlag;
public byte BatteryLifePercent;
public byte Reserved;
public int BatteryLifeTime;
public int BatteryFullLifeTime;
}
static class Program
{
[DllImport(@"kernel32.dll")] extern public static bool GetSystemPowerStatus(out PowerStatus BatteryInfo);
static int Main(string[] args)
{
PowerStatus ps = default(PowerStatus);
if (GetSystemPowerStatus(out ps) == true)
{
Console.WriteLine("交流电源已{0}", (ps.ACLineStatus == 1 ? "连接" : "断开"));
Console.WriteLine("剩余电量:百分之{0}", ps.BatteryLifePercent);
}
else
{
Console.WriteLine("电源信息获取失败");
}
Console.ReadKey(false);
return (0);
}
}
}
参考资料:
[1]: https://docs.microsoft.com/zh-cn/windows/win32/api/winbase/ns-winbase-system_power_status
[2]: https://docs.microsoft.com/zh-cn/windows/win32/api/winbase/nf-winbase-getsystempowerstatus
这篇关于C#调用"GetSystemPowerStatus"函数获取笔记本电源信息的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#