Обсуждение программ nnCron и nnCron LITE
by nikitina » Wed, 27 Feb 2008, 08:55
Ладно, эмоции это понятно, но все-таки к делу. Прописываю скрипты так: - Code: Select all
#( Просыпание_PC WatchSuspend Action: WakeAtDate: 2008 02 22,25,26,27,28,29 07 55 100 MIXER-VOLUME! )#
#( Засыпание_PC Time: 10 17 * * * * Action: POWER-HIBERNATE )#
Подобный скрипт усыпил бы ком 22.02 и пробудил бы его только 25.02? Как ваше мнение?
-
nikitina
-
- Posts: 11
- Joined: Mon, 18 Feb 2008, 12:12
by SeMa » Wed, 27 Feb 2008, 13:46
nikitina wrote:... Подобный скрипт усыпил бы ком 22.02 и пробудил бы его только 25.02? Как ваше мнение?
Нет, этого он не сделает, поскольку в синтаксисе WakeAtDate ошибка в аргументе числа. WakeAtDate: <YYYY MM DD hh mm>Это слово не умеет разбирать перечисление, как слово Time:. Чтобы динамически подставлять в слово нужную дату, надо придумать что-то другое.
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
-

SeMa
-
- Posts: 637
- Joined: Fri, 15 Apr 2005, 12:49
- Location: Украина
by nikitina » Wed, 27 Feb 2008, 14:20
Спасибо за оперативный ответ! Ну, а все таки, как решить мою проблему с конкретными датами, когда комп спит, а когда не просыпается? Ну, так быть не может, чтобы проблема не решалась!
-
nikitina
-
- Posts: 11
- Joined: Mon, 18 Feb 2008, 12:12
by AlikasS » Thu, 28 Feb 2008, 06:31
посмотри слова WakeAtWd: и WakeAtDate: выше в топике пропиши их определения у себя и например вариант такой - Code: Select all
#( Просыпание_PC WatchSuspend Action: WDay@ 5 < IF \ сработает в пнд, втр, срд, чтв WakeAt: 07:55 ELSE \ сработает в птн, сбт, вск WakeAtWd: "07:55" 1 \ проснуться в ближайший 1-й день недели в 7-55 THEN )#
#( Засыпание_PC Time: 10 17 * * * * Action: POWER-HIBERNATE )#
или такой вариант, проверяй дату когда комп уходит в спячку - Code: Select all
#( Просыпание_PC Time: * * * 3 * 2008 \ на март WatchSuspend : март_ S" 07 08 09 14 15 16 21 22 23 28 29 30" ; \ пятницы и выходные дни марта, в эти дни "будильник" заводиться на 07-55 на ближайший понедельник, \ в остальные дни просто будильник на следующий день Action: март_ DD SEARCH IF 2DROP WakeAtWd: "07:55" 1 ELSE 2DROP WakeAt: "07:55" THEN )#
чуть расширенный вариант, все то же, но например засыпая 26.03 пропустить 27 число, т.е. поднять комп 28.03 в 07-55 - Code: Select all
#( Просыпание_PC Time: * * * 3 * 2008 WatchSuspend : март_ S" 07 08 09 14 15 16 21 22 23 28 29 30" ; Action:
S" 26" DD SEARCH \ можно чуть подругому, но пока только для примера IF 2DROP WakeAtDate: 2008 03 28 07 55 EXIT ELSE 2DROP THEN
март_ DD SEARCH IF 2DROP WakeAtWd: "07:55" 1 ELSE 2DROP WakeAt: "07:55" THEN )#
-

AlikasS
-
- Posts: 1439
- Joined: Wed, 28 Jun 2006, 05:39
- Location: Khabarovsk
-
by nikitina » Thu, 28 Feb 2008, 13:14
Спасибо!!! Буду пробовать.
-
nikitina
-
- Posts: 11
- Joined: Mon, 18 Feb 2008, 12:12
by SeMa » Thu, 28 Feb 2008, 15:47
Предлагаю более усовершенствованный и более универсальный вариант последнего примера. Логика такая. 1. В управляющей конструкции CASE ... ENDCASE "вбита" годовая таблица "нестандартных" дней, предшествующих празничным дням. Первым делом проверяются именно эти даты и при совпадении переменной new_wake_date присваивается значение даты пробуждения. 2. Если совпадения не найдено, работает обычная схема: если пятница, то проснуться в понедельник; если нет, то на следующий день. В данном примере я "вбил" все предпраздничные дни на этот год (для Украины). - Code: Select all
#( Просыпание_PC 0 VALUE found? 0 VALUE new_wake_date WatchSuspend Action: TRUE TO found? \ изначально предполагаем предпраздничный день CUR-DATE CASE 2008 01 04 YMD>DATE OF 2008 01 08 YMD>DATE TO new_wake_date ENDOF \ Рождество 2008 03 07 YMD>DATE OF 2008 03 11 YMD>DATE TO new_wake_date ENDOF \ 8 марта 2008 04 25 YMD>DATE OF 2008 04 29 YMD>DATE TO new_wake_date ENDOF \ Пасха 2008 04 30 YMD>DATE OF 2008 05 04 YMD>DATE TO new_wake_date ENDOF \ 1 мая 2008 05 08 YMD>DATE OF 2008 05 12 YMD>DATE TO new_wake_date ENDOF \ 9 мая 2008 06 13 YMD>DATE OF 2008 06 17 YMD>DATE TO new_wake_date ENDOF \ Троица 2008 06 27 YMD>DATE OF 2008 07 01 YMD>DATE TO new_wake_date ENDOF \ День Конституции 2008 08 22 YMD>DATE OF 2008 08 26 YMD>DATE TO new_wake_date ENDOF \ День Независимости 2008 12 31 YMD>DATE OF 2009 01 03 YMD>DATE TO new_wake_date ENDOF \ Новый год DUP OF FALSE TO found? ENDOF \ совпадение не найдено ENDCASE found? \ выбираем схему настройки IF new_wake_date DATE>YMD 07 55 WakeAtDate ELSE WDay@ 5 = IF WakeAtWd: "07:55" 1 ELSE WakeAt: "07:55" THEN THEN )#
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
-

SeMa
-
- Posts: 637
- Joined: Fri, 15 Apr 2005, 12:49
- Location: Украина
by AlikasS » Wed, 02 Jul 2008, 15:43
подправил в теме слово WakeAtWd, была ошибка в нем. здесь и в Plugins\Системные лежит правильный вариант
-

AlikasS
-
- Posts: 1439
- Joined: Wed, 28 Jun 2006, 05:39
- Location: Khabarovsk
-
by Aveiro » Sun, 22 Aug 2010, 21:15
Приветствую. Перехожу с другой программы на nnCron,многого еще не изучил,так что извиняйте. Задача такая,отправляем компьютер в 23:59 в спящий режим.И будим по рабочим дням (1-5) в 9:30. После пробуждения через минуту перезагружаемся( чтобы обнулить ошибки некоторых программ за прошлый день). А в пятницу отправляем спать и будим только в понедельник в 9:30. Это реализовать оказалось не очень сложно.Ибо здесь конкретные цифры. Вот задача с отправкой СМС на мобильник.- Code: Select all
#( Выкл_Компьютера NoLog Time: 58 23 * * * * Action: PLAY-SOUND: "D:\СИСТЕМА\Мелодии и звуки\Сигналы\Сигнализация.wav" TQUERY: "Через 1 МИНУТУ компьютер уйдет в СПЯЩИЙ РЕЖИМ. Cохраните свои данные !" 60 Yes IF S" Компьютер уходит в СПЯЩИЙ РЕЖИМ." \ текст S" Acer" \ тема S" 7*******@sms.beemail.ru 7********@sms.beemail.ru" \ mail кому S" av****@mail.ru" \ mail от кого S" av**** \ логин S" **********" \ пароль S" smtp.mail.ru" 25 \ адрес smtp сервера и порт SMTP-SEND&ATTACH ?DUP IF THINT: "Ошибка отправки СМС: %0 esPICK%" 3 ELSE THINT: "CMC отправлено" 3 PLAY-SOUND: "D:\СИСТЕМА\Мелодии и звуки\Слова\msga.wav" PAUSE: 3000 THEN POWER-HIBERNATE ELSE PAUSE: 120000 PLAY-SOUND: "D:\СИСТЕМА\Мелодии и звуки\Сигналы\ok.wav" TMSG: "Не забудьте по окончании работы перевести компьютер в спящий режим! ." 10 THEN )#
А вот включение по раб.дням(для воскресенья тоже самое)- Code: Select all
#( Вкл_Компьютера_(Пон-Четв,Воскр.) NoLog WatchSuspend Time: 55-59 23 * * 1-4,7 * Action: WakeAt: 9:30 PAUSE: 60000 PLAY-SOUND: "D:\СИСТЕМА\Мелодии и звуки\Сигналы\ok.wav" TQUERY: "Через 5 СЕКУНД компьютер будет перезагружен." 5 Yes IF REBOOT THEN )# Для пятницы :- Code: Select all
#( Вкл_Компьютера_(Пятн) NoLog WatchSuspend Time: 55-59 23 * * 5 * Action: WakeAfter: 57:30 PAUSE: 60000 PLAY-SOUND: "D:\СИСТЕМА\Мелодии и звуки\Сигналы\ok.wav" TQUERY: "Через 5 СЕКУНД компьютер будет перезагружен." 5 Yes IF REBOOT THEN )#
Но вот загвоздка,иногда нужно будет работать в субботу или воскресенье и после работы отправлять комп в сон,чтобы он проснулся в любом случае в 9:30 в понедельник.Т.е конкретное время отключения неизвестно. Т.е по идее,как думается мне нужно вычислять время между 9:30 понедельника и временем остановки компа,и эту переменную использовать в WakeAfter. Или есть другой путь? Может кто делал подобное,поделитесь реализацией.Спасибо. P.S и такой вопрос,может nnCron запускать задачи не по горячим клавишам,а по кодовому слову ? Например набираем слово"спать"-запускается задача
nncron.exe v 1.93b15 Build 1177 08.02.2016 tm.exe v 1.93b15 Build 604 08.02.2016
-
Aveiro
-
- Posts: 222
- Joined: Tue, 06 Jul 2010, 21:19
by AlikasS » Mon, 23 Aug 2010, 02:17
в топике перед твоим сообщением есть ссылка там плагин лежит в нем есть слова WakeAtDate WakeAtWd: обрати внимание на последнее часть кода будет выглядить примерно так - Code: Select all
WDay@ 5 < IF WakeAt: "09:30" ELSE WakeAtWd: "09:30" 1 THEN
-

AlikasS
-
- Posts: 1439
- Joined: Wed, 28 Jun 2006, 05:39
- Location: Khabarovsk
-
by Aveiro » Mon, 23 Aug 2010, 03:14
Огромаднейшее спасибо,это то,что нужно. У меня ноут работает когда человека нет рядом,нужно определить момент когда отключается свет. Наверное через цикл. Т.е если свет есть-порядок,он отключается-срабатывает условие.Через пару секунд с этого момента сного проверить от чего питается ноут( чтобы исключить кратковременного отключения на пару секунд).Если света нет-пропинговать сервер.Если и сервер не пингуется,значит логика делает вывод о отключении света- уходим в спящий режим к примеру на 20 минут.По пробуждению сного смотрим питание,если сного-батареи и сервера не пингуются-спать на 20 минут...и т.д,пока не появится свет. nnCron может подобное ?
nncron.exe v 1.93b15 Build 1177 08.02.2016 tm.exe v 1.93b15 Build 604 08.02.2016
-
Aveiro
-
- Posts: 222
- Joined: Tue, 06 Jul 2010, 21:19
by AlikasS » Mon, 23 Aug 2010, 10:52
Aveiro wrote:У меня ноут работает когда человека нет рядом,нужно определить момент когда отключается свет. Наверное через цикл. Т.е если свет есть-порядок,он отключается-срабатывает условие.Через пару секунд с этого момента сного проверить от чего питается ноут( чтобы исключить кратковременного отключения на пару секунд).Если света нет-пропинговать сервер.Если и сервер не пингуется,значит логика делает вывод о отключении света- уходим в спящий режим к примеру на 20 минут.По пробуждению сного смотрим питание,если сного-батареи и сервера не пингуются-спать на 20 минут...и т.д,пока не появится свет. nnCron может подобное ?
может.  сам как пробовал?
-

AlikasS
-
- Posts: 1439
- Joined: Wed, 28 Jun 2006, 05:39
- Location: Khabarovsk
-
by Aveiro » Mon, 23 Aug 2010, 19:37
Увы мне знаний не хватит,я даже не знаю как определить момент перехода ноута на батареи. В другой программе я выводил на экран окно "Свойства: Электропитание" и там постоянно считывал текст из него,при появлении слова"батареи" запускалась задача...а как в Кроне это сделать,считать текст пока не знаю...
nncron.exe v 1.93b15 Build 1177 08.02.2016 tm.exe v 1.93b15 Build 604 08.02.2016
-
Aveiro
-
- Posts: 222
- Joined: Tue, 06 Jul 2010, 21:19
by AlikasS » Tue, 24 Aug 2010, 02:14
Aveiro wrote:... У меня ноут работает когда человека нет рядом,нужно определить момент когда отключается свет. Наверное через цикл. Т.е если свет есть-порядок,он отключается-срабатывает условие.Через пару секунд с этого момента сного проверить от чего питается ноут( чтобы исключить кратковременного отключения на пару секунд).Если света нет-пропинговать сервер.Если и сервер не пингуется,значит логика делает вывод о отключении света- уходим в спящий режим к примеру на 20 минут.По пробуждению сного смотрим питание,если сного-батареи и сервера не пингуются-спать на 20 минут...и т.д,пока не появится свет. nnCron может подобное ?
нужен подключенный в nncron.ini плагин wakeup.spf и powerstate.spf - Code: Select all
#( слежение_за_выключением NoActive NoLog SingleInstance WatchSuspend Action: WakeAfter: 00:20 CUR-NODE CF-ACTIVE CLR-CRON-FLAG )#
#( слежение_за_питанием SingleInstance NoLog \ более 600 секунд за компом никого нет \ это что бы, если есть юзер, он принимал решение о спящ.режиме Rule: IDLE: 600 ; Action: AC-LINE-STATUS NOT IF 2000 PAUSE AC-LINE-STATUS NOT IF 2000 PAUSE \ дальше пингуем сервер HOST-EXIST: "192.168.0.1" NOT IF \ TQUERY: "выключить комп?" 30 Yes NOT IF EXIT THEN слежение_за_выключением @ CF-ACTIVE SET-CRON-FLAG 2000 PAUSE POWER-FORCE POWER-HIBERNATE THEN THEN THEN )#
P.S. возможно нужна будет авторизация и подгрузка профиля, смотри: AsLoggedUser (или User: имя_юзера Password: пароль Domain: домен LogonInteractive ) и LoadProfile
-

AlikasS
-
- Posts: 1439
- Joined: Wed, 28 Jun 2006, 05:39
- Location: Khabarovsk
-
by Aveiro » Tue, 24 Aug 2010, 03:20
Спасибо. Чувствуется профи.... 
nncron.exe v 1.93b15 Build 1177 08.02.2016 tm.exe v 1.93b15 Build 604 08.02.2016
-
Aveiro
-
- Posts: 222
- Joined: Tue, 06 Jul 2010, 21:19
by kolik76 » Wed, 08 May 2013, 23:12
Люди добрые помогите, как заставить чтобы выходил из спящего режима, пробовал #( Просыпание_PC WatchSuspend Action: WakeAfter: 00:01 )#
не помогает. ОС Windows 7 HP_SP1
-
kolik76
-
- Posts: 24
- Joined: Wed, 08 May 2013, 13:52
Return to nnCron forum (Russian)
Who is online
Users browsing this forum: No registered users and 1 guest
|
|