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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
kspy



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем!
 
Пишу вот так:

Код:
 
#( idle_balooon1  
Rule: PROC-EXIST: "iexplore.exe" PROC-EXIST: "icq.exe" OR IDLE: 30 AND IF TQUERY: "Вы не используете интернет. Закрыть приложения его использующие?" 10 Yes THEN
Action:  
FOR-PROCS: "iexplore.exe"
          KILL: "%FOUND-PID%"
      ;FOR-PROCS
FOR-PROCS: "icq.exe"
          KILL: "%FOUND-PID%"
      ;FOR-PROCS
TRAY-REFRESH
    30000 BalloonTime !
    2 BalloonIcon !
BALLOON: "Внимание!" "Не забывайте выходить из интернета! Программы использующие соединение были закрыты..."
BEEP: 200 300
)#
 

говорит ошибка стека в RULE...
Что тут неправильно?

Всего записей: 164 | Зарегистр. 04-11-2003 | Отправлено: 10:09 06-07-2004
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Crime
Могу предложить три варианта решения данной задачи:
1. Либо с помощью плагина Winamp.spf (но в нем, кажется, нет соответствующего слова, я им не пользуюсь не могу сказать точно), либо какими-то другими средствами определить имя (и хорошо бы полный путь) играющего файла и соответственно удалить его. Здесь тебе могут помочь те кто "плотно" работал с Winamp'ом и, кончно, же strauss .
2. Если за указанным тобою действием закреплен hotkey самого Winamp'а, то послать его окну соответствующую комбинацию клавиатурных кодов (SEND-KEYS: "key_code_string"). Посмотри hotkey'и Winampa, и, если такой существует, то с помощью справки легко составишь скрипт.
3. Третий вариант можно реально состряпать, но он - "некрасивый", т. к. решает поставленную задачу грубо (в лоб). Создаешь хоткей nncron'а по которому все те действия которые ты делаешь вручную с помощью мышки будет делать nncron эмулируя работу мыши, т. е. вытаскиваешь окно Winampa на поверхность в строго определенном положении и затем чередуя перемещения указателя мыши и нажатия кнопок выполняешь удаление трека с винта с помощью Winamp'а, после чего запускаешь на воспроизведение следующий трек (использую слова из плагина Winamp.spf) и сворачиваешь окно. Браться за этот вариант стоит если два предыдущие неосуществимы, подожди что другие тебе посоветуют.
 
kspy

Цитата:
 Rule: <любая последовательность слов Форта, возвращающая флаг>  

После
Цитата:
 TQUERY: "Вы не используете интернет. Закрыть приложения его использующие?" 10 Yes  

флаг остается, но ты его забираешь контрукцией IF...THEN, которая и является здесь лишней, и надо добавить еще один логический оператор (скорее всего AND), другими словами должно выглядеть примерно так:

Цитата:
 Rule: PROC-EXIST: "iexplore.exe" PROC-EXIST: "icq.exe" OR IDLE: 30 AND TQUERY: "Вы не используете интернет. Закрыть приложения его использующие?" 10 Yes AND
 

И еще несколько моментов (IMHO):
 
1. Для закрытия программ лучше использовать следующую конструкцию:
PROC-EXIST: "iexplore.exe"
IF
  PROC-CLOSE: iexplore.exe \ для этого слова необходим плагин procwin.spf
THEN
PAUSE: 20000
PROC-EXIST: "iexplore.exe"
IF
  KILL: "iexplore.exe"
THEN
\ в этом случае перед тем как "убить" процесс, осуществляется попытка закрыть его
\ "по мирному", и если были несохранены какие-либо данные, то можно отлавливать
\ соответствующее окошко и в зависемости от обстоятельств сохранять\несохранять.
 
2. Возможно стоит еще и прервать соединение с I'net'ом.
 
3. Я ни разу не использовал TQUERY в Rule, и если это не допустимо, то TQUERY можно загнать в тело задачи.

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

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



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

Цитата:
Rule: PROC-EXIST: "iexplore.exe" PROC-EXIST: "icq.exe" OR IDLE: 30 AND TQUERY: "Вы не используете интернет. Закрыть приложения его использующие?" 10 Yes AND  

так не работает. вернее не выполняется IDLE: 30
 
а если TQUERY загнать в тело, то как? использовать там IF ... THEN ... EXIT ?

Всего записей: 164 | Зарегистр. 04-11-2003 | Отправлено: 14:26 06-07-2004
DJ makrus

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

Цитата:
 Чтобы получить доступ к счетчику idle time (времени простоя компьютера), воспользуйтесь словом GetIdleTime, которое кладет на стек время бездействия компьютера в миллисекундах.  
Следует упомянуть, что счетчик инкрементируется только если в каком-то из заданий уже используется слово IDLE: или отсчет idle time инициирован принудительно:  
<%
InitIdleHook
%>
.
.
.
Операционная система накладывает некоторые ограничения на работу слова IDLE:. Пpи активном консольном окне (Command Prompt, FAR и т. д.) Windows "не замечает" действий юзеpа и счетчик idle time пpодолжает инкpементиpоваться, невзиpая на его (юзеpа) активность.
В Win9* пpи активном консольном окне игноpиpуется только ввод с клавиатуpы, а действия юзеpа с мышью обpабатываются коppектно. В Win2000 игноpиpуется и то и дpугое.

 
Теперь как "загнать" TQUERY в тело скрипта:
...
Action:
TQUERY: "Вы не используете интернет. Закрыть приложения его использующие?" 10 Yes
IF
  \ здесь старое содержимое раздела Action:
THEN
)#

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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJ makrus
ОК спасибо, сейчас попробую...

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



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите, пожалуйста!
Есть плагин к Винампу, называется np.spf . Работает, т.е. пишет в файл имя проигрываемого трека. А хотелось бы не в файл, а в виде Balloon или всплывающей подсказки. По хоткею или при смене трека - не суть важно пока. Я так понимаю нужно как то разобрать файл на слова и выкинуть их в заголовок подсказки, но в регулярных выражениях не силен.

Всего записей: 146 | Зарегистр. 30-07-2003 | Отправлено: 07:34 07-07-2004
maskman



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Могу предложить такой вариант.

Код:
#( general_now_playing
 
SingleInstance
<(
VARIABLE WINAMP_STATUS
CREATE WINAMP_TITLE 256 ALLOT
CREATE WINAMP_NEW_TITLE 256 ALLOT
CREATE WINAMP_SONG 256 ALLOT
CREATE WINAMP_NEW_SONG 256 ALLOT
)>
 
Time: *
Also
WatchProc: "winamp.exe"
Rule: PROC-EXIST: "winamp.exe"
Action:
   BEGIN
      WIN-EXIST: "Winamp v1.x"
   WHILE
      RE-MATCH: "%FOUND-WINDOW%" "/\d+\. (.*) - Winamp/"
      IF
         104 0 1024 WIN-HWND SendMessageA WINAMP_STATUS !
         WINAMP_STATUS @ 3 =
         IF
             S" Winamp поставлен на паузу" EVAL-SUBST WINAMP_NEW_TITLE PLACE
         ELSE
            WINAMP_STATUS @ 1 <>
            IF
               S" Winamp остановлен" EVAL-SUBST WINAMP_NEW_TITLE PLACE
            ELSE
               S" Winamp сейчас играет" EVAL-SUBST WINAMP_NEW_TITLE PLACE
               $1 WINAMP_NEW_SONG PLACE
            THEN
         THEN
         WINAMP_NEW_SONG COUNT WINAMP_SONG COUNT COMPARE WINAMP_NEW_TITLE COUNT WINAMP_TITLE COUNT COMPARE OR
         IF
            WINAMP_NEW_SONG COUNT WINAMP_SONG PLACE
            WINAMP_NEW_TITLE COUNT WINAMP_TITLE PLACE
            BALLOON: "%WINAMP_NEW_TITLE COUNT%" "%WINAMP_NEW_SONG COUNT%"
            THEN
      THEN
      PAUSE: 60
   REPEAT
)#
 

Всего записей: 47 | Зарегистр. 20-04-2003 | Отправлено: 19:41 07-07-2004 | Исправлено: maskman, 19:43 07-07-2004
LeXXeR



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
maskman
Спасибо!
Немного сложновато для моего понимания, но - работает!
Иногда, правда, баллончик выскакивает не только при смене, но и в середине песни. Но это не страшно.

Всего записей: 146 | Зарегистр. 30-07-2003 | Отправлено: 06:28 08-07-2004
maskman



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

Цитата:
Иногда, правда, баллончик выскакивает не только при смене, но и в середине песни. Но это не страшно.

Потому что,

Код:
Time: *  

Вот тебе и рассказывают каждую минуту что слушаешь.

Всего записей: 47 | Зарегистр. 20-04-2003 | Отправлено: 12:43 08-07-2004
elite128

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос по nnbackup: Какнить ему можно передать имя компьютера для обзывания архива типа имя компьютера_дата.zip?

Всего записей: 1496 | Зарегистр. 26-08-2002 | Отправлено: 13:00 08-07-2004
LeXXeR



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
maskman
Еще заметил что nncron.exe (ранее практически не грузивший проц), теперь грузит его довольно ощутимо - этак на 25-30% (Athlon 700). Может как-то можно снизить частоту опроса WatchProc? Или дело не в ней?

Всего записей: 146 | Зарегистр. 30-07-2003 | Отправлено: 13:08 08-07-2004
maskman



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

Цитата:
Дока
WatchProc: "proc_pattern"  
Срабатывает при запуске указанного процесса.

Так что, грузить проц он не может
 
Задачка писана не мной.
Запустил Winamp (на самом деле другим плеером слушаю музон) потестить задачку.
Действительно балоны криво вываливаются. Надо будет над ней порабоать.
Но nnCron проц не грузит (не больше обычного).

Всего записей: 47 | Зарегистр. 20-04-2003 | Отправлено: 13:53 08-07-2004 | Исправлено: maskman, 14:05 08-07-2004
LeXXeR



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
maskman
Послал скрин на ящик в профиле

Всего записей: 146 | Зарегистр. 30-07-2003 | Отправлено: 07:33 09-07-2004
denver



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maskman
Это я скрипт переделывал к такому виду, а что там криво вываливается?
Time: * ни о чем не говорит. Балоны всплывают когда заголовок окна winamp меняется. Посредине песни у меня ничего не всплывает (только если ставить на паузу и т.п.).
 
Добавлено

Цитата:
Иногда, правда, баллончик выскакивает не только при смене, но и в середине песни. Но это не страшно.  

Вспомнил, такое бывает если включена прокрутка названия трека в заголовке винампа.

Всего записей: 33 | Зарегистр. 25-10-2003 | Отправлено: 12:11 09-07-2004
maskman



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LeXXeR
Вот и автор, все вопросы можешь ему адресовать.
 

Цитата:
Еще заметил что nncron.exe (ранее практически не грузивший проц), теперь грузит его довольно ощутимо - этак на 25-30% (Athlon 700)

На эхе в этом случае советуют следущее:
1. Забэкапится
2. Установить nnCron по умочанию.
3. Добавить ту задачу на которую грешишь и погонять
 
вот и выяснится она виновна в загрузке проца или нет.

Всего записей: 47 | Зарегистр. 20-04-2003 | Отправлено: 13:47 09-07-2004 | Исправлено: maskman, 13:48 09-07-2004
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
denver
1. А для чего вообще используется " Time: * "? (именно в этом виде)
2. У тебя там в плагине нигде путь и имя проиграиваемого файла не проскальзовывает, а
то у Crime проблемка обозначилась (см. выше) или может знаешь откуда можно вытащить (может в плагин еще одно слово добавить?)

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

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 05:16 10-07-2004
Crime



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
еще вопросик, возможно ли вывести месадж в видеопорт (прям в игрушку как FRAPS показывает везде FPS) ?

Всего записей: 159 | Зарегистр. 11-06-2004 | Отправлено: 17:48 11-07-2004
4get

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Открыт официальный www-форум nnSoft
http://www.nncron.ru/forums/

Всего записей: 956 | Зарегистр. 19-09-2001 | Отправлено: 23:42 11-07-2004
denver



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJ makrus
Вообще-то я взял плаг с офсайта (np.spf) и переделывал его (в оригинале он выводит имя в файл).
Time: * говорит что надо постоянно запускать задачу. В любом случае задача запускается если существует окно винампа. Если оно существует то делает что надо и отключается на 60 миллисекунд (PAUSE: 60) можно поставить сколько хощь - просто могут быть задержки перед показом балона.
Вытянуть имя файла можно: надо только отправить сообщение винампу:

Код:
 
#define IPC_GET_BASIC_FILE_INFO 291 //pass a pointer to the following struct in wParam
typedef struct {
  char *filename;
 
  int quickCheck; // set to 0 to always get, 1 for quick, 2 for default (if 2, quickCheck will be set to 0 if quick wasnot used)
 
  // filled in by winamp
  int length;
  char *title;
  int titlelen;
} basicFileInfoStruct;
 

 
но как разобрать ответ - это задача не для меня...

Всего записей: 33 | Зарегистр. 25-10-2003 | Отправлено: 22:43 12-07-2004
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
denver
 
Цитата:
Time: * говорит что надо постоянно запускать задачу.

А разве задача не будет постоянно запускаться без Time: * ? (а заодно и без Also ). Именно это меня и смущает, т. к. эти слова, на мой взгляд, лишние.
 
  Если не ошибаюсь сообщение винампу написано явно не на скриптовом языке nnCron'а (в котором я немного разбираюсь) и даже не на Форте, а что-нибудь навроде С++ (угадал\неугадал?) в котором я точно ничего не понимаю, поэтому если уж:

Цитата:
как разобрать ответ - это задача не для меня...

то и не для меня тем более, так что подождем знающих людей  

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

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 01:30 13-07-2004 | Исправлено: DJ makrus, 01:31 13-07-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