Считывание заряда аккумулятора программным путем

вторник, 10 ноября 2009, Alexander Honcharuk

Захотелось мне написать свой виджет, который будет показывать заряд аккумулятора ноутбука. Вот нашел один из способов, как программно это сделать на C# через WinAPI.

using System;
using System.Runtime.InteropServices; // Necessary!

namespace MyNamespace
{
    /// 
    /// Summary description for BatteryChecker.
    /// 
    public class BatteryChecker
    {
        static public void Main()
        {
            //Variable which will be contain needed info.
            SystemPowerStatus s = GetSystemPowerStatus();
        }

        [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;
    }
}

Теперь можно искать инфу как создавать виджеты для рабочего стола Windows 7.


Ищите нас в интернетах!

Комментарии

Свежие вакансии