Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron-Планировщик с поддержкой скриптового языка

Модерирует : gyra, Maz

Widok (29-01-2008 15:38): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

   

8AleX8



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nnCron
 
nnCron - это компактный, но мощный планировщик и менеджер автоматизации с собственным скриптовым языком, основанным на синтаксисе языка программирования Форт. Помимо традиционной для планировщика способности запускать в указанное время программы, "напоминалки" и открывать документы ..
 
nnCron способен отслеживать файлы, флаги, окна, процессы, движения мыши, время простоя компьютера, клавиатурные шорткаты, выход в онлайн/оффлайн, появление диска в драйве, наличие хоста в сети (пинг), изменение удаленного ресурса по http-протоколу, количество свободного места на диске, загруженность оперативной памяти и многое другое...
 
nnCron понимает cron-формат (Unix) и управляется с помощью текстовых кронтаб-файлов. Для тех, кто любит работать с GUI есть графическая оболочка из которой можно удалять/добавлять/редактировать и запускать задачи, устанавливать напоминалки, менять настройки программы.  
 
nnCron позволяет использовать в задачах VBScript/JScript, регулярные выражения и расширяется за счет плагинов. Он может быть запущен в качестве службы (сервиса) или как обычное приложение. Обладает средствами удаленного администрирования. Подробнее прочитать о возможностях nnCron вы можете в online-документации.
 
nnCron бесплатен для граждан стран бывшего СССР при условии частного и некоммерческого использования.


история изменений - http://www.nncron.ru/forums/viewforum.php?f=11
форум - http://www.nncron.ru/forums/
 
архив конференции поддержки: » fido7.ru.nncron
 
скачать: http://www.nncron.ru/download_ru.shtml - программу, документацию, плагины, скрипты
 
последняя версия:  
 
v.1.91 (build 1083) - последний релиз от 21 марта 2006 (+ основные плагины и документация на английском языке)  
 
документация:  
 
help_ru.zip  (обновляется регулярно) документация nnCron (на русском языке)
faq_ru.zip nnCron FAQ (на русском языке)  
spf_help.zip (130k  20 Nov 2002)  описание основных слов SP-Forth (на русском языке)  
sf.chm (1.5M  03 Feb 2003)  книга Leo Brodie "Начальный курс программирования на языке Форт" (на русском языке)  
 
полезные ссылки:
* » nnBackup - крошечная (250k) консольная утилита, предназначенная для резервного копирования файлов, синхронизации содержимого каталогов, создания и обработки файл-листов.  
* » Cтатья Валерия Кондакова про возможности nnCron  
* » Канал "nnCron releases" для » WatzNew by 8AleX8
* » Файл расцветки синтаксиса исходников языка Форт и кронтабов nnCron для плагина Colorer (Far Manager)
* » Редактор мелодий для beeper'a под nnCron
Если не работает новая, правильно написанная задача, то попробуйте добавить в опции задачи слово AsLoggedUser (галочка в свойствах новой задачи "Как пользователь, выполнивший login") и, возможно, LoadProfile (галочка "Загрузить профиль").
 

Полезные самодельные задачи для сабжа
 

Всего записей: 1813 | Зарегистр. 11-12-2001 | Отправлено: 23:26 27-04-2002 | Исправлено: lucky_Luk, 18:16 22-09-2007
elalexey

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток.
 
как известно:
 

Цитата:
WatchShutdown... Следует отметить, что у nnCron нет средств "остановить" процесс выключения или "усыпления" компьютера, поэтому "длинная" задача, запущенная по подобному событию, может не успеть выполниться.

 
 
Есть ли выход из этой ситуации? Необходимо, перехватить команду на shutdown, дождаться завершения задачи nnCron и выключить компьютер.
 
Есть утилита LastChance но она не корректно работает в winXP, а также не выключает компьютер самостоятельно. Также существуют StartUp и Shutdown Script самого Windows... к сожалению у меня не вышло подвязать к ним nnCron. Система сначала выгружает всё из памяти (nnCron в том числе) отрабатывает LogOff, и только потом пытается выполнить nncron.exe -run ... , что приводит к ошибке.
 
Буду признателен за помощь
 
Удачи

Всего записей: 3 | Зарегистр. 29-04-2003 | Отправлено: 22:08 31-10-2004
roman78



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в клипборде имеется некое число в круглых скобках (например "(123)" или "(-8)", без кавычек). Можно ли кроном избавиться от этих скобок и если число от -10 до 10, то заменить на цифру 0?  
 
От скобок можно избавиться после вставки в блокнот ("грязный" способ, но на большее меня не хватает ), а как число на стек положить чтоб потом через CASE в случае нужды на ноль заменить и обратно в клипборд чтоб вернуть в тот же блокнот?  
Или есть более грамотная последовательность действий?

Всего записей: 428 | Зарегистр. 31-05-2003 | Отправлено: 20:32 06-11-2004
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roman78  
  Загляни в "Дополнительная информация -> Неотложная помощь по форту -> Как пpеобpазовать число в стpоку и наобоpот?"
 В этом разделе есть, на мой взгялд, вся необходимаю информация для решения твоей задачи
 
  А алгоритм примерно такой:
1. ложим на стек содержимое буфера обмена ( переменная %CLIPBOARD%)
2. избавляемся от скобок (см. выше)
3. строку в число
4. проверка числа
5. число в строку
  На большее сейчас нет времени, через пару дней появится, если к тому времени не получится, то полезем глубже    
 
(P. S. если не получается, то не жди двух дней, пиши здесь же - кто-нибудь еще поможет )

----------
все познается в сравнении

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 01:22 07-11-2004
roman78



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJ makrus
спасибо за подсказку. На оффоруме предложили такой вариант:

Цитата:
 
CLIPBOARD@  
 
     S" /\((-?\d+)\)/" RE-MATCH  
   IF  
    $1 S>NUM  
     
        DUP ABS 11 <  
      IF  
       DROP  
       0  
      THEN  
     
    N>S CLIPBOARD!  
   THEN
 

я пока мало что понял , но пошел разбираться...
 
 
Добавлено
пока могу сказать что оно работает

Всего записей: 428 | Зарегистр. 31-05-2003 | Отправлено: 03:25 07-11-2004
roman78



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хех... как вы думаете, что должно произойти после этого:

Цитата:
 
SEND-KEYS: "{{123}}"
 

я рассчитывал получить в блокноте {123}, но увидел только скобки
Правда билд у меня не последний - 1.89 Build 993. Есть какиенить мысли?

Всего записей: 428 | Зарегистр. 31-05-2003 | Отправлено: 22:44 07-11-2004
daMIR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roman78
Попробуй  так

Цитата:
 
SEND-KEYS: "{{}"
SEND-KEYS: "123}"  

Вроде работает.
 
 
Добавлено
Заметил что при установке SEND-KEYS на WatchHotKey работают только простые комбинации. Т.е. нельзя повесить SEND-KEYS  на WatchHotKey: "^+x", но можно на WatchHotKey: "{F10}" и т.п. почему?

Всего записей: 1757 | Зарегистр. 14-03-2004 | Отправлено: 10:26 08-11-2004
roman78



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
{{}123{} - так тоже получается искомое (спасибо Tez'y), похоже глюк...
 
а с нот кеями фих знает что за грабля: у меня в системе на диске С:\ те же траблы, а на D:\ (то же винХР сп1, и недавно стала сп2) все ок... Гм... во втором случае крон не с системного диска запускается, а с E:\. Может в этом дело? (ну типа еще глюк )

Всего записей: 428 | Зарегистр. 31-05-2003 | Отправлено: 13:39 08-11-2004
daMIR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roman78
Я не понял у тебя проблема вообще с нот кеями, или только с нот кеям где в активациистоит SEND-KEYS? А задачи одни и те же?

Всего записей: 1757 | Зарегистр. 14-03-2004 | Отправлено: 16:09 08-11-2004
roman78



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
постой-постой, что значит "при установке SEND-KEYS на WatchHotKey"?  
В поле "WatchHotKey" не пишется "SEND-KEYS", только коды клавиш.
 
Проблема у меня в одной винде - работают только простые (читай однокнопочные ) хоткеи, а в "соседней" винде все ок.  
 
Кста, у тебя раскладка "правильная" стоит? А то помнишь был момент: хоткей на англ., а раскладка русская - не работает.

Всего записей: 428 | Зарегистр. 31-05-2003 | Отправлено: 17:14 08-11-2004 | Исправлено: roman78, 17:24 08-11-2004
daMIR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
постой-постой, что значит "при установке SEND-KEYS на WatchHotKey"?  

Примерно такая задача:

Цитата:
#( test
WatchHotKey: "{F10}"
Action:
SEND-KEYS: "test"
)#
 

Все работает отлично. Но:  

Цитата:
#( test
WatchHotKey: "^+q"  
Action:
SEND-KEYS: "test"
)#

Не работают, незавимисо от раскалдки. Т.е. эмуляцию ввода с клавиатуры нельзя повесить на сложное клавиатурное сокращение.
 

Цитата:
Проблема у меня в одной винде - работают только простые (читай однокнопочные ) хоткеи, а в "соседней" винде все ок.  

Многнокопочные нот кеи работают в какой задачи, т.е. после Action что идет?

Всего записей: 1757 | Зарегистр. 14-03-2004 | Отправлено: 18:13 08-11-2004
roman78



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Погонял хоткеи... извиняюсь за дезу - винды работают с кроном одинаково.
Дело в том что SEND-KEYS начинает работать когда твои хот-кеи все еще нажаты, те либо шустрее пальцы от клавы отдергивай (вряд ли успеешь ), либо паузу вставляй.
 
Добавлено

Цитата:
WatchHotKey: "^+q"  

не уверен, но может так попробовать: WatchHotKey: "^(+q)"  

Всего записей: 428 | Зарегистр. 31-05-2003 | Отправлено: 19:47 08-11-2004
daMIR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Т.е. попробовать задачу:

Цитата:
#( test  
WatchHotKey: "^+q"  
Action:  
Pause: 2000
SEND-KEYS: "test"  
)#

Да, что-то в этом есть, надо будет попробовать позже.
 

Цитата:
не уверен, но может так попробовать: WatchHotKey: "^(+q)"  

В чем ты не уверен? Комбинация Ctrl+Shift+q.
 
Возник еще одни вопрос. Вот у меня  в памяти висит два пользователя. В процесс Крон указан что запущен от имени SYSTEM. И он не работает в том профиле, что загружен позже. Т.е. Захожу в профиль 1, все ОК, Крон работает. НЕ выходя из первого захожу в профиль 2. В нем Крон не работает, даже если процесс убить и запустить по новой. Как это лечится? В профиле 1 все работает. Стоит добавить, что если зайти обратно в профиль 1 и оттуда выйти из Крона, а потом запустить в профиле 2, то в последнем он будет работать. Вопрос такой: как заставить Крон работать независимо от того, висит ли еще один профиль с запущеннным там Кроном.

Всего записей: 1757 | Зарегистр. 14-03-2004 | Отправлено: 22:33 08-11-2004
roman78



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ, подскажите плз как порулить дочерним окном... координаты задать или развернуть...
так не работает:
 

Цитата:
 
WIN-EXIST: "FontLab*"
IF
FOR-CHILD-WINDOWS: "Afx:400000:8:0:1900014:1103c5"
WIN-MOVE: 100 100
;FOR-CHILD-WINDOWS
THEN
 


Всего записей: 428 | Зарегистр. 31-05-2003 | Отправлено: 09:07 14-11-2004
daMIR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не работает данная задача:
 

Цитата:
#( test2
WatchDisconnect  
PAUSE: 600
Rule: ONLINE: "ufacom" NOT  QUERY: "Выгрузить OutPost и Miranda?" AND    
Action:
PROC-CLOSE: miranda32.exe
PROC-CLOSE: outpost.exe
)#

 
По моей задумке она должна:
1. После разрыва Интернет-соединения
2. когда пройдет некоторое время
3. (тут самая сложная строка) при отсутствии соединения и при подтверждении
4. и 5. убить два процесса.
Я хочу, после того как я СПЕЦИАЛЬНО (для этого-то я поставил паузу) вышел из  
Интернета Крон убил бы предназначенные для работы в Инете программы.
Может кто-нибудь посоветует более изящную и работоспособную задачу?
З.Ы. После думаю сделать обратную последовательность: при входе в Инет
по прошествии определенного времени Крон бы запускал нужные программы.
 
 
Добавлено
З.Ы.Ы. Вобщем дополняю:
Задача работает, только не работает пауза. Что делать?
Как сделать задачу наоборот?

Всего записей: 1757 | Зарегистр. 14-03-2004 | Отправлено: 18:32 17-11-2004
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
daMIR  
1. По-моему PAUSE: нельзя использовать в шапке задачи    
И я не совсем понял зачем тебе эта пауза, объясни по-подробнее (т. е. опиши как ты представляешь работу задачи с паузой и без паузы, к тому же такой маленькой)
2. Для чего тебе проверка на отсутствие соединения, если задача должна сработать при его разрыве?
3. Если же тебе все-таки нужны и пауза и проверки, то возможен следующий вариант:
  Переносишь паузу и проверки в тело задачи, при этом Rule: меняешь на IF ... THEN и все.
4.
Цитата:
Как сделать задачу наоборот?
Что ты имеешь в виду? Запуск приложений при появлении соединения с I'net'ом? Там ведь ничего сложного  

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 15:19 18-11-2004
kspy



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может так надо?
Только нахрена Rule: ONLINE, если есть WatchDisconnect
 
#( close_miranda
WatchDisconnect
Rule: ONLINE: "ufacom" NOT    
Action:
PAUSE: 600
TQUERY: "Нет соединения с инетом! Закрыть миранду?" 10 Yes  
IF  
FOR-PROCS: "miranda32.exe"
          KILL: "%FOUND-PID%"
      ;FOR-PROCS
THEN
)#
 

Всего записей: 164 | Зарегистр. 04-11-2003 | Отправлено: 15:43 18-11-2004
daMIR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJ makrus

Цитата:
И я не совсем понял зачем тебе эта пауза, объясни по-подробнее

Пауза нужна для проверки ложного отключения. Маленькую паузу поставил, когда тестил работоспособность паузы-сначала была минута, потом 6 сек. В действительности нужна минута.  

Цитата:
2. Для чего тебе проверка на отсутствие соединения, если задача должна сработать при его разрыве?

ХехСвязь часто обрывается, и не охота постоянно запускать\закрывать кучу программ. Т.е. представь ситауцию: сижу в Инете, связь оборвалась, я в течении минуты опять подключился, проги не закрылись(!), решил выйти из Сети- Крон спрашивает: "отрубить OutPost?" (Миранда, интернет-счетчик, прог куча.) Поэтому если в течении минуты после разрыва интернет-соединения я не подключился, Крон должен выводить запрос на заврешении программ.
Как он должен работать: после разрыва соединения, после 1 минуты, проверить на повторное соединение, если такого нет, то выдать запрос. Т.е. если я дозвонился в течении минуты, запрос  НЕ должен выводится.

Цитата:
Что ты имеешь в виду? Запуск приложений при появлении соединения с I'net'ом? Там ведь ничего сложного

Тут тоже нужна пауза Часто выхожу в Инет чисто для проверки почты, на 5-10 сек (а если в это врмея в  памяти висит Фотошоп, Иллюстратор?). На это время мне не нужна Miranda, не нужно лишний раз загружать процессор. А если я вылез на достаточно продолжительное время, то тогда пускаются проги.
 
kspy
Практически то, что нужно. Но между разрывом сединения и проверкой на подключение должна быть пауза.

Всего записей: 1757 | Зарегистр. 14-03-2004 | Отправлено: 17:46 18-11-2004 | Исправлено: daMIR, 17:47 18-11-2004
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
daMIR  
  Ну вот, кое-что проясняется  , попробуй разбить свою задачу на две:

Код:
#( Inet_off_2
NoActive                 \ задача запускается только из Inet-off_1
Rule: QUERY: "Выгрузить OutPost и Miranda?"
Action:
  PROC-CLOSE: miranda32.exe  
  PROC-CLOSE: outpost.exe  
)#
 
#( Inet_off_1
WatchDisconnect
Action:
  PAUSE: 60000       \ 600 - это 600 миллисекунд, меньше секунды    
  ONLINE: "ufacom" NOT \ почему бы не воспользоваться "ONLINE?"?
  IF
    LAUNCH Inet_off_2 \ запуск задачи с проверкой "содержимого" шапки
  THEN
)#
 
  Ну вот в таком виде кажется должно работать  
  Возможен и попроще вариант, вместо "LAUNCH Inet_off_2" вставь:

Код:
  QUERY: "Выгрузить OutPost и Miranda?"
  IF
    PROC-CLOSE: miranda32.exe
    PROC-CLOSE: outpost.exe
  THEN

  Что-же касается запуска всего необходимого для работы в I'net'е, то я сначала все что надо запускаю, а уж потом подключаюсь. Алгоритм работы задачи аналогичный, т. е. после паузы проверяешь подключен ли ты, и если да, то запускаешь все необходимое (а проще, на мой взгляд, запуск всех дополнительных программ на хоткей повесить)

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 22:37 18-11-2004
daMIR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJ makrus
Твоя задача работает, спасибо. Остановился на таком варианте:
 

Цитата:
#( Inet_off
WatchDisconnect  
Action:  
  PAUSE: 60000          
 ONLINE? NOT  
  IF  
    QUERY: "Выгрузить программы OurPost и Miranda?"  
  IF  
    PROC-CLOSE: miranda32.exe  
    PROC-CLOSE: outpost.exe  
  THEN
  THEN  
)#

 
Решил оставить одну, т.к. ИМХО это более изящная конструкция.
Заодно сделал обратную задачу, т.е. на запуск:
 

Цитата:
#( Inet_on
WatchConnect
AsLoggedUser
LoadProfile
Action:  
   PAUSE: 60000          
    ONLINE?
   IF
    QUERY: "Запустить программы OutPost и Miranda?"  
   IF  
      PROC-EXIST: "outpost.exe" NOT
    IF
   START-APP: D:\Program Files\Net\Outpost Firewall\outpost.exe
    ELSE
      PROC-EXIST: "miranda32.exe" NOT
    IF
   START-APP: D:\Program Files\Net\Miranda IM\miranda32.exe
    THEN
    THEN
   THEN
   THEN
  )#

 
Это задачка получилась чуть побольше (оказывается программу запустить сложнее чем выгрузить ).
З.Ы.

Цитата:
 Что-же касается запуска всего необходимого для работы в I'net'е, то я сначала все что надо запускаю, а уж потом подключаюсь.

Ну лентяй я, что поделаешь? Не хочу вручную запускать постоянно одни и те же проги, а после их выключать. На NotKey вешать тож не хочу, надо искать чистые комбинации, тестить их.  
З.Ы.Ы.В принципе задачки хорошие получились , все работает... только хочу чтобы nnCron угадывал мои мысли...:D надо подумать...

Всего записей: 1757 | Зарегистр. 14-03-2004 | Отправлено: 16:21 19-11-2004
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
daMIR  

Цитата:
Ну лентяй я, что поделаешь? Не хочу вручную запускать постоянно одни и те же проги, а после их выключать.

  Лень - двигатель прогресса!  
1. Запуск. А подключаешься к I'net'у ты как? Наверняка через какую-нибудь звонилку, ручками или тоже автоматизировал (хоткей, например)? Так ты в задачу с запуском программ добавь подключение   (уже подключившись - неохота терять время на запуск программ, к тому же некоторые программы лучше запускать в off-line )
2. Выгрузка. Я частенько загружаю несколько страниц для чтения, потом читаю уже в off-line, снова загружаю - читаю, загружаю..., т. е. твоя задача задолбает вопросами хочу ли я выгрузить программы   . У меня на запуск программ для I'net'а имеется хоткей, его же я собираюсь задействовать и на выгрузку тех же программ (сделав в начале программы проверку на наличие ключевых процессов, которые укажут запускать пора программы или же уже выгружать, например outpost.exe)

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 04:15 20-11-2004
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron-Планировщик с поддержкой скриптового языка
Widok (29-01-2008 15:38): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru