Секреты Delphi. Как отключить монитор?

Секреты Delphi. Как отключить монитор?

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

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

const
MONITOR_ON = -1;
MONITOR_OFF = 2;
. . .
procedure TfrmMain.actMo-nitorPowerOffExecute(Sender: TObject);
begin
SendMessage(frmMain.Han- dle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
end;
procedure TfrmMain.act MonitorPowerOnExecute(Sender: TObject);
begin
SendMessage(frmMain.Han-dle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_ON);
end;

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

Сергей Бердачук, Berdachuk@tut.by http://berdachuk.at.tut.by


Компьютерная газета. Статья была опубликована в номере 07 за 2004 год в рубрике программирование :: delphi

©1997-2024 Компьютерная газета