Страница 1 из 3

Автоматическое отключение компьютеров по времени

Добавлено: Пн сен 12, 2016 9:52 pm
Alexiy2
Доброго времени суток, Господа!!!
Суть вопроса такова:
Имеем несколько компьютеров в локалке (компьютера принадлежат детям), Алиса может их выключать по Wake on Lan. Так же идет мониторинг Алисой, в сети ли эти компьютера или нет! Надо ограничить работу данных машин на определенное время в сутки. Т.е. если данная машина находится в сети суммарно более 120 минут в сутки, то необходимо, что бы Алиса ее отключила. И если компьютер повторно включат, то сервер должен тут же при ее появлении в сети, отключать!
Подскажите реализацию данной задачи!!! Не силен я в PHP!!!

Заранее благодарен. Думаю, что многие родители хотели бы ограничить свое чадо от долгих посиделок за компьютером!

Re: Автоматическое отключение компьютеров по времени

Добавлено: Пн сен 12, 2016 10:09 pm
savenko_egor
Как вариант: Выключаем компьютер удаленно
Погуглите. Информации реально много!

Re: Автоматическое отключение компьютеров по времени

Добавлено: Пн сен 12, 2016 11:31 pm
Alexiy2
Вы, видимо, всей сути не поняли! Отключение уже реализовано! Сложность именно в подсчете общего времени работы компьютера за сутки! Надо сделать так, что бы компьютер мог работать именно 120 минут в сутки и не более того!

Отправлено с моего SM-T116 через Tapatalk

Re: Автоматическое отключение компьютеров по времени

Добавлено: Вт сен 13, 2016 7:43 am
nick7zmail
Alexiy2 писал(а):Вы, видимо, всей сути не поняли! Отключение уже реализовано! Сложность именно в подсчете общего времени работы компьютера за сутки! Надо сделать так, что бы компьютер мог работать именно 120 минут в сутки и не более того!

Отправлено с моего SM-T116 через Tapatalk
Не зная как у вас всё организовано - трудно предложить правильный вариант, но будет примерно так:
-объект для компьютера к примеру comp1
-свойство comp1.timelimit - ограничение по времени (в вашем случае 120...можно регулировать из меню к примеру)
-свойство comp1.online - 1 если в сети, 0 если не в сети

В ежеминутном цикле пишем:

Код: Выделить всё

//Выключение компов
if (date('H:i')=='00:00') {
   sg('comp1.timetoday', 0);//сбрасываем ежедневное время в 12 ночи
}
if (gg('comp1.online')) {
   sg('comp1.timetoday', gg('comp1.timetoday')+1); //прибавляем 1 мин к времени работы, если комп включен
}
if (gg('comp1.timetoday')>=gg('comp1.timelimit')) {
   cm('comp1.turnoff'); //запускаем метод на выключение, если время за сегодня больше лимита
}
И так для каждого компа. Если все компы в отдельном классе - можно классовым методом запускать.
PS: Код писал "от руки", без рабочей системы под рукой)) Проверить негде, если что не сработает - пишите.

Re: Автоматическое отключение компьютеров по времени

Добавлено: Вт сен 13, 2016 8:32 am
Alexiy2
Спасибо огромное! Вот это ответ! Все развернуто для особо "ОДАРЕННЫХ"! По прибытию домой обязательно попробую!

Отправлено с моего SM-T116 через Tapatalk

Re: Автоматическое отключение компьютеров по времени

Добавлено: Вт сен 13, 2016 9:11 am
lanket
Хорошие идеи вы подняли. Хотел бы немного дополнить вашу идею Вдруг понравится точка Может быть еще предупредить а подключение за 5 минут 3 и одну минуту . чтобы ребенок успел например заранее подготовиться к выключению компьютера. Зачем это надо? Пример он может заниматься полезным делом а не только в игры играть.

Отправлено с моего Redmi Note 3 через Tapatalk

Re: Автоматическое отключение компьютеров по времени

Добавлено: Вт сен 13, 2016 10:41 am
Alexiy2
В 7 винде при получении пакета на отключение приходит сообщение на экран о выключении. А в сам пакет можно любое время на отсрочку выключения поставить. У меня 5 минут стоит. Т.е. перед включением за пять минут выходит на экран сообщение

Отправлено с моего SM-T116 через Tapatalk

Re: Автоматическое отключение компьютеров по времени

Добавлено: Вс сен 18, 2016 7:11 pm
Alexiy2
Господа!
А не подскажите как правильно записывать код:
Имеются свойства объекта Comp "timelimit" и "timetoday"! Надо вычесть разницу между этими свойствами и внести ответ в свойство "timeleft". Написал такой код, но он не работает:

Код: Выделить всё

gg($obj['TITLE'].".timeleft")==sg($obj['TITLE'].".timelimit")-sg($obj['TITLE'].".timetoday"); 
Где моя ошибка?

Просьба сильно не пинать ногами - я только познаю этот прекрасный мир программирования!

Re: Автоматическое отключение компьютеров по времени

Добавлено: Вс сен 18, 2016 8:34 pm
ipz
Поменять местами sg и gg
sg - установить значение
gg - получить значение

UPD:
У sg() два аргумента: название свойства и само значение, поэтому правильно так

Код: Выделить всё

sg( $obj['TITLE'].".timeleft", gg($obj['TITLE'].".timelimit")-gg($obj['TITLE'].".timetoday") );

Re: Автоматическое отключение компьютеров по времени

Добавлено: Вс сен 18, 2016 8:43 pm
olehs

Код: Выделить всё

sg($obj['TITLE'].".timeleft", gg($obj['TITLE'].".timelimit")-gg($obj['TITLE'].".timetoday"));
*** Сообщение запрещено. Сообщение похоже на спам. ***