Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Получить статус питания

Delphi , ОС и Железо , Компьютер

Получить статус питания

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

procedure TForm1.Button1Click(Sender: TObject);
 var
   SysPowerStatus: TSystemPowerStatus;
 begin
   GetSystemPowerStatus(SysPowerStatus);
   if Boolean(SysPowerStatus.ACLineStatus) then
   begin
     ShowMessage('System running on AC.');
   end
   else
   begin
     ShowMessage('System running on battery.');
     ShowMessage(Format('Battery power left: %d percent.', [SysPowerStatus.BatteryLifePercent]));
   end;
 end;

Here's the translation of the provided text into Russian:

Вот процедура в Delphi, которая получает текущий статус питания системы и отображает, работает ли она на электричестве сети или батарейном питании, а также процент оставшегося ресурса батареи.

Обзор того, что код делает:

  1. Он объявляет переменную SysPowerStatus типа TSystemPowerStatus, который является структурой, предоставленной Windows для получения информации о текущем статусе питания.
  2. Процедура вызывает функцию GetSystemPowerStatus, передавая SysPowerStatus как параметр вывода. Функция получает текущий статус питания и заполняет структуру SysPowerStatus.
  3. Затем она проверяет, является ли свойство ACLineStatus структуры SysPowerStatus истинным. Если это так, то это означает, что система работает на электричестве сети, поэтому она отображает сообщение, говорящее "Система работает на электричестве сети.".
  4. Если ACLineStatus ложно, то это означает, что система работает на батарейном питании. В этом случае она отображает два сообщения: одно, говорящее "Система работает на батарейном питании.", и другое, отображающее процент оставшегося ресурса батареи, форматированный как строка с помощью функции Format.

Альтернативное решение, использующее более современный подход:

procedure TForm1.Button1Click(Sender: TObject);
var
  PowerStatus: TPowerStatus;
begin
  PowerStatus := GetSystemPowerStatus;
  if PowerStatus.ACLineStatus then
    ShowMessage('Система работает на электричестве сети.')
  else
  begin
    ShowMessage('Система работает на батарейном питании.');
    ShowMessage(Format('Прогнозированный ресурс батареи: %d процентов.', [PowerStatus.BatteryLifePercent]));
  end;
end;

function GetSystemPowerStatus: TPowerStatus;
var
  Buffer: array[0..127] of Byte;
begin
  FillChar(Buffer, SizeOf(Buffer), 0);
  PowerGetSystemPowerStatus(Buffer, SizeOf(Buffer));
  Result := TPowerStatus.Create(Buffer^);
end;

В этом альтернативном решении я создал новую функцию GetSystemPowerStatus, которая вызывает Windows API-функцию PowerGetSystemPowerStatus для получения статуса питания. Функция возвращает буфер байтов, который затем конвертируется в объект TPowerStatus с помощью конструктора.

Остальная часть кода остается той же, но это решение более современное и легче для чтения.

В статье описывается процедура на языке Delphi, которая позволяет получать информацию о состоянии питания компьютера и выводить ее в виде сообщения.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Компьютер ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 18:51:41/0.0047187805175781/2