Внесу свои пару копеек в тему)). Помимо редких разговоров ночью - какого то фига винда издавала какие-то звуки ровно в 6 утра. Типа оповещений, но хз на что. Одним словом немного надоело, решил по-химичить.
Перво-наперво решаем как хотим все это дело контролировать. Я, например, создал вот такие компоненты в меню.

- Пункты меню
- 11.jpg (48.51 КБ) 11699 просмотров
Далее выбираем объект, который будет использован для этого функционала. Я взял DarknessMode из OperationalModes, т.к. больше он у меня нигде не используется. Правильнее все таки создать/использовать название NightMode наверное). Такой тоже есть в последних версиях. У объекта создаем свойства DarknessMode.timeon, DarknessMode.timeoff, и DarknessMode.volumebefore (чуть позже поясню зачем).

- Свойства
- 22.jpg (71.72 КБ) 11699 просмотров
Ну и наконец настраиваем методы activate
Код: Выделить всё
sg('DarknessMode.volumebefore', gg('ThisComputer.volumeLevel'));//Записываем текущую громкость в DarknessMode.volumebefore
CallMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=>0)); //Выставляем системную громкость на 0
и deactivate.
Код: Выделить всё
CallMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=>gg('DarknessMode.volumebefore'))); //Возвращаем громкость на уровень до включения режима
И наконец исполнительный код в OnNewMinute
Код: Выделить всё
//Ночной режим
if (timeIs(getGlobal('DarknessMode.timeon'))) {
callMethod('DarknessMode.activate');
}
if (timeIs(getGlobal('DarknessMode.timeoff'))) {
callMethod('DarknessMode.deactivate');
}
Лучше все делать в классе OperationalModes, т.к. там подготовлены методы (activate/deactivate/modechanged) и свойства (active, title, updated). В итоге получаем что-то типа

- Результат
- 33.jpg (21.73 КБ) 11699 просмотров