powerstate.cs

来自「wince power manager source code」· CS 代码 · 共 73 行

CS
73
字号
using System;
using System.Runtime.InteropServices;


namespace Power
{
	/// <summary>
	/// Summary description for PowerState.
	/// </summary>
	public class PowerStatus
	{
		public enum _ACLineStatus : byte 
		{
			Offline = 0, 
			Online = 1, 
			Unknown = 255
		}
		public enum _BatteryFlag : byte 
		{
			High = 0x01, 
			Low = 0x02, 
			Critical = 0x04, 
			Charging = 0x08,
			NoSystemBattery = 0x80, 
			Unknown = 0xFF
		}

		internal struct SystemPowerStatus 
		{
			public _ACLineStatus ACLineStatus;
			public _BatteryFlag  BatteryFlag;
			public byte          BatteryLifePercent;
			public byte          Reserved1;
			public uint          BatteryLifeTime;
			public uint          BatteryFullLifeTime;
		}
    
		[DllImport("kernel32")]
		private static extern
			bool GetSystemPowerStatus (out SystemPowerStatus sps);

		private SystemPowerStatus _sps = new SystemPowerStatus();

		public PowerStatus()
		{
			//Initialise the powerstate
			GetSystemPowerStatus(out _sps);
		}

		public _ACLineStatus ACLineStatus
		{
			get { return _sps.ACLineStatus; }
		}
		public _BatteryFlag  BatteryFlag
		{
			get { return _sps.BatteryFlag; }
		}
		public byte          BatteryLifePercent
		{
			get { return _sps.BatteryLifePercent; }
		}
		public uint          BatteryLifeTime
		{
			get { return _sps.BatteryLifeTime; }
		}
		public uint          BatteryFullLifeTime
		{
			get { return _sps.BatteryFullLifeTime; }
		}

	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?