15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту




Как перевести монитор в режим stand-by

Автор: Kecvin S. Gallagher

Если монитор поддерживает режим Stand by, то его можно программно перевести в этот режим. Данная возможность доступна на Windows95 и выше.

Чтобы перевести монитор в режим Stand by:
SendMessage(Application.Handle,  wm_SysCommand,  SC_MonitorPower, 0) ;

Чтобы вывести его из этого режима:
SendMessage(Application.Handle, wm_SysCommand, SC_MonitorPower, -1) ;


А теперь более полный пример кода:
На новую форму поместите кнопку, таймер и ListBox.

Timer (use Object Inspector):

Enabled := False
Interval := 15000


Добавьте следующее событие таймеру:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

 ListBox1.Items.Add(FormatDateTime('h:mm:ss AM/PM',Time)) ;

 SendMessage(Application.Handle, wm_SysCommand, SC_MonitorPower, -1);

end;

Command Button:

procedure TForm1.Button1Click(Sender: TObject);

begin

 ListBox1.Items.Add('--> ' + FormatDateTime('h:mm:ss AM/PM',Time)) ;

 Timer1.Enabled := not Timer1.Enabled ;

 SendMessage(Application.Handle,  wm_SysCommand,  SC_MonitorPower, 0) ;

end;

После запуска откомпилированного приложения и нажатия на кнопку, экран погаснет на 15 секунд.

ЗАМЕЧАНИЕ: Удостоверьтесь, что во первых компьютер поддерживает режимы энергосбережения, а вовторых, эти функции не запрещены на данном компьютере.