这个问题我解决过哦。
用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、给你个,照着里边去测。


