GetSystemPowerStatus (kernel32)
Last changed: -199.123.78.97

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern bool GetSystemPowerStatus(out SYSTEM_POWER_STATUS
   lpSystemPowerStatus);

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

// C# Example by Matt Henry (henrym@sytexinc.com) //

using System;

using System.Runtime.InteropServices; // Necessary!

namespace MyNamespace

{

    /// <summary>
    /// Summary description for BatteryChecker.
    /// </summary>
    public class BatteryChecker
    {
        public BatteryChecker()
        {
            // Nothing
        }

        [DllImport("Kernel32")]
        private static extern Boolean GetSystemPowerStatus( SystemPowerStatus sps );

        public static SystemPowerStatus GetSystemPowerStatus()
        {
            SystemPowerStatus sps = new SystemPowerStatus();
            GetSystemPowerStatus( sps );
            return sps;
        }
    }

    public enum ACLineStatus : byte
    {
        Offline = 0, Online = 1, Unknown = 255
    }

    public enum BatteryFlag : byte
    {
        High = 1,
        Low = 2,
        Critical = 4,
        Charging = 8,
        NoSystemBattery = 128,
        Unknown = 255
    }

    // Fields must mirror their unmanaged counterparts, in order
    [StructLayout( LayoutKind.Sequential )]
    public class SystemPowerStatus
    {
        public ACLineStatus _ACLineStatus;
        public BatteryFlag  _BatteryFlag;
        public Byte     _BatteryLifePercent;
        public Byte     _Reserved1;
        public Int32    _BatteryLifeTime;
        public Int32    _BatteryFullLifeTime;
    }

}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation