系统监测电源状态的函数

核心提示这个问题我解决过哦。 用P/Invoke调 API:kernel32.dll中的GetSystemPowerStatus函数。函数返回系统的电源状态。状态指数系统是在直流电源还是交流电源下运作,电池是否在充电,电池的剩余电量。 先定义结构体

这个问题我解决过哦。

用P/Invoke调 API:kernel32.dll中的GetSystemPowerStatus函数。函数返回系统的电源状态。状态指数系统是在直流电源还是交流电源下运作,电池是否在充电,电池的剩余电量。

先定义结构体:

[StructLayout(LayoutKind.Sequential)]

public struct SYSTEM_POWER_STATUS

{

public byte ACLineStatus;

public byte BatteryFlag;

public byte BatteryLifePercent;

public byte Reserved1;

public int BatteryLifeTime;

public int BatteryFullLifeTime;

}

然后导入外部函数:

[Dllimport("kernel32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]

public static extern bool GetSystemPowerStatus(ref SYSTEM_POWER_STATUS systemPowerStatus);

如果调用成功,返回 true,然后分析systemPowerStatus的数据就行。

ACLineStatus为1时,表示正在使用交流电源,为0使用直流电源。

希望能够帮到你。

1、+12V1主要为CPU供电,+12V2为显卡供电

+5V要为硬盘供电,也为主板上的其他设备供电,包括键盘鼠标等,

3.3V主要为内存供电

这些随电源版本不同,规范的也不同,这里是符合inlte?ATX2.3版本

2、一般合理波动应该在正负5%以内,如12V应该在11.4V-12.6V之间波动。

第四个问题先说,取决于主板。

3、给你个,照着里边去测。

 
友情链接
鄂ICP备19019357号-22