BERDAFLEX Software Systems
Главная > Delphi > Как отключить монитор?

Как отключить монитор?

Из письма: “Подскажите, пожалуйста, как в Delphi можно отключить монитор (например, как в режиме standby)”.

Честно говоря до недавнего времени времени данный вопрос как то не возникал. Но по всей видимости появление парка мобильных компьютеров вносит свои коррективы в функциональность разрабатываемых программ. Анализ форумов показал, что этот вопрос пользуется популярностью.

Одним из решений поставленной задачи будет использование системного сообщения WM_SYSCOMMAND с указанием команды SC_MONITORPOWER. В документации по Delphi указано, что данная функция предназначена только для Windows 95. Но на практике она работает и на более поздних версиях Windows при включенной поддержке режима энергосбережения в BIOS. Создадим два метода для включения и выключения монитора:

const
  MONITOR_ON = -1;
  MONITOR_OFF = 2;
. . .
procedure TfrmMain.actMonitorPowerOffExecute(Sender: TObject);
begin
  SendMessage(frmMain.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
end;
procedure TfrmMain.actMonitorPowerOnExecute(Sender: TObject);
begin
  SendMessage(frmMain.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_ON);
end;

ВНИМАНИЕ. Хочется обратить ваше внимание на возможность перегрузки элементов монитора при многократном быстром переключении режимов, что может привести к поломке электроники. Так что использовать вышеописанные функции следует осторожно.

Rambler's Top100 Рейтинг@Mail.ru