C语言怎样显示系统电源的状态?

Python017

C语言怎样显示系统电源的状态?,第1张

这个问题我解决过哦。

用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使用直流电源。

希望能够帮到你。

//电源控制程序

//2009-9-2 by yingang2009

void main()

{

while(1)

{

switch (开关状态)

{

case 关:

if(有人按开关)

{

开关状态 =开

dosomething()

}

break

case 开:

if(有人按开关)

{

开关状态 =关

dosomething()

}

break

default:

break

}

}

}