Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как мониторить состояние аккумулятора? 
V
    Опции темы
okaton
Дата 12.2.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Всем спасибо smile

Код

using System;
using System.Runtime.InteropServices;
namespace BatteryChecker
{
  class Program
  {
    static void Main(string[] args)
    {
      IntPtr state = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(SYSTEM_BATTERY_STATE)));
      uint retval = CallNtPowerInformation(InformationLevel.SystemBatteryState, IntPtr.Zero, 0, state, (UInt32)Marshal.SizeOf(typeof(SYSTEM_BATTERY_STATE)));
      SYSTEM_BATTERY_STATE btState = (SYSTEM_BATTERY_STATE)Marshal.PtrToStructure(state, typeof(SYSTEM_BATTERY_STATE));
    }
    [DllImport("powrprof.dll", SetLastError = true)]
    private static extern UInt32 CallNtPowerInformation(
    InformationLevel InformationLevel,
    IntPtr lpInputBuffer,
    UInt32 nInputBufferSize,
    IntPtr lpOutputBuffer,
    UInt32 nOutputBufferSize
    );
  }
  struct SYSTEM_BATTERY_STATE
  {
    [MarshalAs(UnmanagedType.I1)]
    public bool AcOnLine;
    [MarshalAs(UnmanagedType.I1)]
    public bool BatteryPresent;
    [MarshalAs(UnmanagedType.I1)]
    public bool Charging;
    [MarshalAs(UnmanagedType.I1)]
    public bool Discharging;
    public byte Spare0;
    public byte Spare1;
    public byte Spare2;
    public byte Spare3;
    public uint MaxCapacity;
    public uint RemainingCapacity;
    public int Rate;
    public uint EstimatedTime;
    public uint DefaultAlert1;
    public uint DefaultAlert2;
  }
  enum InformationLevel
  {
    AdministratorPowerPolicy = 9,
    LastSleepTime = 15,
    LastWakeTime = 14,
    ProcessorInformation = 11,
    ProcessorPowerPolicyAc = 18,
    ProcessorPowerPolicyCurrent = 22,
    ProcessorPowerPolicyDc = 19,
    SystemBatteryState = 5,
    SystemExecutionState = 16,
    SystemPowerCapabilities = 4,
    SystemPowerInformation = 12,
    SystemPowerPolicyAc = 0,
    SystemPowerPolicyCurrent = 8,
    SystemPowerPolicyDc = 1,
    SystemReserveHiberFile = 10,
    VerifyProcessorPowerPolicyAc = 20,
    VerifyProcessorPowerPolicyDc = 21,
    VerifySystemPolicyAc = 2,
    VerifySystemPolicyDc = 3
  }
}

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0989 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.