Сегодня я решил выложить написанную мною на Delphi процедуру для отключения дисплея, или, другими словами, перевода монитора в режим ожидания. Для начала опишу, как это работает!
При вызове, динамически создаётся поверх всех окон форма чёрного цвета, перекрывающая всю рабочую зону (в т.ч. и панель задач с треем), у формы обрабатываются такие события, как клик по ней, нажатие клавиш и перемещение мыши. Все эти события осуществляют выход из процедуры с уничтожением формы в памяти и включением дисплея. Так же при формировании формы на ней инициируются два таймера, первый из которых отсчитывает количество миллисекунд, отведённых на работу процедуры, а второй посылает каждые 30 секунд сообщение операционной системе, о необходимости отключить монитор.
Необходимость во втором таймере определена опытным путём, т.к. порой при малейшем колебании мышью экран включается, однако движение настолько незначительно, что нет смысла выводить программу из нашего состояния.
Процедура вызывается с параметром MsSleep, который соответствует времени в миллисекундах, на которое необходимо увести монитор в нужное нам состояние).
Читать полностью »