Ru-Board.club
← Вернуться в раздел «Программы»

» nnCron-Планировщик с поддержкой скриптового языка

Автор: daMIR
Дата сообщения: 29.11.2005 13:53

Цитата:
Надо будет файрвол вообще вырубить и поставить его запуск перед установкой Интернет-соединения чтобы не болтался зря в памяти.

Хотел сам сделать точно такую же задачу. Споткнулся именно на том что файр не хочет нормально закрываться- если процесс убивать, инет весь перекрывается (что вполне логично). А разрабатывать сложную (для меня) задачу на одно простое действие- неохота Закрываю ручками
Автор: lucky_Luk
Дата сообщения: 30.11.2005 10:44
daMIR

Цитата:
Хотел сам сделать точно такую же задачу. Споткнулся именно на том что файр не хочет нормально закрываться

А ты его что - вырубать решил после выхода из Инета? Я знаю как файр нормально выключить, а чтобы сразу после разрыва соединения - это круто. Интересно, надо будет себе такое сделать.
Надо чтобы nnCron его аккуратно через его же меню мышкой закрывал поищи в хелпе описания команд MOUSE-MOVE: и пр. Задача не сложная - команды одни и те же просто повторяются и главное с координатами не ошибится (а для этого в комплекте идет WinSpy). У меня с Антихакером Касперского работает. Когда полностью доведу задачу то выложу файл для примера.
Автор: daMIR
Дата сообщения: 30.11.2005 12:07

Цитата:
а чтобы сразу после разрыва соединения - это круто.

Ничего крутого WatchDisconnect

Цитата:
то выложу файл для примера

это интересно.
Автор: DJ makrus
Дата сообщения: 30.11.2005 17:48
daMIR
Цитата:
...Споткнулся именно на том что файр не хочет нормально закрываться...
Если ты про Outpost, то по "Alt+F4" он нормально закрывается (если в outpost.ini установить "AskOnExit=no", то и окошко подтверждения не будет появляться)
Автор: lucky_Luk
Дата сообщения: 01.12.2005 13:44
daMIR
Рассказываю как вырубить защищенную прогу.
Думаю у любого антивируса и пр. есть значок в трее из которого можно вызвать меню, а там есть пункт для выключения - вот и заставим nnCron добросовестно кликнуть по нему мышкой. Только нужно выключить все окна с предупреждениями и т.п. потому что это усложнит задачу (хотя алгоритм будет похожий).
Вот кусок задачи, который может корректно вырубать антивирусы и прочие защищенные процессы.[more]


Код:
/ Передвижение указателя мыши на значок вашей программы в трее - цифры это абсолютные координаты положения указателя (X Y)
MOUSE-MOVE: 932 752
/ Одиночный клик правой кнопкой по значку
MOUSE-RBCLK
/ Пауза в 0,5 сек. Если есть глюки то попробуйте поставить паузы между действиями - чтобы система успевала "сообразить" вывести меню и т.п. Время задается в миллисекундах - 0,001 сек., взято от фонаря - его хватает но можете поэкспериментировать
PAUSE: 500
/ Передвижение указателя на пункт меню, который отвечает за выключение вашей программы
MOUSE-MOVE: 835 743
/ Пауза в 0,5 сек.
PAUSE: 500
/ Одиночный клик левой кнопкой по пункту меню
MOUSE-LBCLK
Автор: rosalin
Дата сообщения: 01.12.2005 16:53
Подскажите можно сделать вот так
Создать Батник

Запуская его с любой машины в сети будет синхронизация на определенную машину

Я использовал

NET USE Для мапинга диска
получил s: =сетевой адрес

Ну а дальше
откуда куда
Да и еще у меня сам nnbackup.exe тоже лежит на s:

соответственно надо откуда %userprofile%\My Documents
куда s:%computername%\My Documents

Бился над этим не получаеться максимум добился синхронизирует пустые папки
Автор: daMIR
Дата сообщения: 02.12.2005 11:22
lucky_Luk
Просто и красиво, но а как узнать "правильное" положение значков в трее? У меня панелька слева, значки в три ряда, причем иногда запускаю разные проги- Опера,Миранда и в разной последовательности, к тому же еще ДО интернета может быть запущена прога- все это в результате дает нестабильность значков.
Вобщем я остановился на решении DJ makrus- посылать "Alt+F4", тем более что постоянно пользуюсь только фаером, а антивирем сканирую переодически.
З.Ы. А вот распозновать значки Крон можно научить?
Автор: lucky_Luk
Дата сообщения: 06.12.2005 11:28
daMIR

Цитата:
У меня панелька слева, значки в три ряда, причем иногда запускаю разные проги
Как вариант можно попробовать в XP настроить скрытие значков в трее - оставить только те, чьи процессы нужно выключать - но у меня скрытие значков иногда глючит, скрывает не то что надо.

Цитата:
Ничего крутого WatchDisconnect
[more]

Прокатило, только жаль что нельзя в одной задаче и запускать, и выключать файр - WatchDisconnect не ставится в середину задачи - только вначале. Есть альтернативы? У меня одна задача запускает файр когда открывается окно установки сетевого подключения, а вторая выключает его после разрыва соединения. Как объединить эти задачи?

Цитата:
А вот распозновать значки Крон можно научить?

Сомневаюсь. WinSpy никак не реагирует на разные значки - для него они все одинаковые.
DJ makrus

Цитата:
специальной команды вроде бы нет, но можно воспользовться вот этим:

Пока глючит, но пытаюсь разобраться. Пойду в Программы искать примитивный счетчик файлов (чтобы мог выдать количество файлов в папке в текстовый файл) или буду приспосабливать команду dir /p (можно как-то заставить nnCron анализировать только строку текстового файла с заданным содержимым?).

Может ли nnCron найти в папке 2 или больше одинаковых файлов (сравнение по размеру в байтах) и удалить более старые - оставить самый новый (в имени файла прописаны дата и время создания до секунд)?

nnCron умеет анализировать коды возврата? Надо чтобы он выдал сообщение после того как одна программа завершит работу - или это можно сделать не через коды, а проследить завершение процесса (окна программа не создает)?[/more]
Автор: DJ makrus
Дата сообщения: 07.12.2005 04:10
lucky_Luk
Зря ты свои вопросы в "Подробнее" запрятал, такие вещи должны быть на виду - что бы не повторялись.


Цитата:
У меня одна задача запускает файр когда открывается окно установки сетевого подключения, а вторая выключает его после разрыва соединения. Как объединить эти задачи?

В принципе, не вижу ничего плохого в двух задачах, но это дело вкуса, конечно.
Что бы объединить задачи - объедини в одной оба условия запуска каждой из них, а уже в теле задачи, по наличию процесса файерволла, определяй что надо делать с ним: запускать\закрывать.


Цитата:
Пока глючит, но пытаюсь разобраться.

в чем глюк проявляется? ошибается в количестве файлов? не должон вроде..., там же все просто как 2х2. Выложи целиком всю задачку (вот тут "Подробнее" - в самый раз) глянем в чем может быть ошибка.


Цитата:
можно как-то заставить nnCron анализировать только строку текстового файла с заданным содержимым?

см. Help: READ-LINE


Цитата:
Может ли nnCron найти в папке 2 или больше одинаковых файлов (сравнение по размеру в байтах) и удалить более старые - оставить самый новый (в имени файла прописаны дата и время создания до секунд)?


см. Help: FILE-SIZE:, но точность этого слова - 1Кб, на оффоруме (уже давненько) поднимался вопрос про определение размера с точностью до байта

для определения старый\новый см. Help: FILE-CREATION-DATE:

если определять по имени файла, то переводи строки в числа (см. Help: S>NUM) и сравнивай


Цитата:
nnCron умеет анализировать коды возврата? Надо чтобы он выдал сообщение после того как одна программа завершит работу - или это можно сделать не через коды, а проследить завершение процесса (окна программа не создает)?

по-поводу кодов - что-то вроде было, но точно не знаю.
А какой результат работы программы?
Если после своей работы она завершается, то проще, конечно же, WatchProcStop:, либо вообще воспользуйся START-APPW: ( и не ленимся, читаем... читаем Help)
Автор: Interceptor
Дата сообщения: 11.12.2005 07:23
Подскажите пожалуйста, мне нужно запускать задачу, исходя из нескольких условий:
1. Процесс Х1 остановлен (не активен)
2. Время от Т1 до Т2
3. Есть активное соединение с провайдером
4. Существует файл Ф1 (создан)

Я решил основным условием запуска выбрать 1-е, то есть процесс был только что остановлен, а остальные - вторичными. Получилось приблизительно следующее:

WatchProcStop: "Janus.exe"
Rule: INTERVAL: 7:10-8:00 AND
Rule: ONLINE: "Dial-Up to provider" AND
Rule: FILE-EXIST: "d:\rsdn.txt"
Action:
StartIn: "E:\"
ShowNormal NormalPriority
START-APP: E:\rsdn.exe
FILE-DELETE: "d:\rsdn.txt"

Однако при срабатывание выдается ошибка: Rule stack error. Причем ошибка выдается два раза. Если убрать AND во вторичных условиях, то все происходит без ошибок, но тогда процесс может запуститься при любом из условий (такое впечатление, что без AND несколько Rule объеденены через OR). Что я делаю не так, подскажите пожалуйста?
Автор: evle
Дата сообщения: 11.12.2005 09:01
Interceptor
Читать хелп:

Цитата:

Допускается использование нескольких конструкций Rule: в одной задаче. В этом случае Rule: объединяются с помощью логического "ИЛИ" - действие выполнится, если хотя бы одно (или несколько) из указанных условий вернут TRUE.

То есть соединять несколько Rule операциями нельзя. Зато можно:

Цитата:

Гораздо удобнее объединять несколько условий в рамках одной конструкции Rule:. В качестве логических операций при этом используются слова AND и OR (логические "И" и "ИЛИ"). Синтаксис комбинированных условий следует правилам постфиксной записи, принятой в языке Форт (<условие 1> <условие 2> <логическая операция>):

Код:
\ Возвращает TRUE, если оба условия верны
Rule: <проверка1> <проверка2> AND
\ Возвращает TRUE, если хотя бы одно из уcловий верно
Rule: <проверка1> <проверка2> OR

Автор: Interceptor
Дата сообщения: 11.12.2005 14:26
evle
Спасибо, помогло!
Автор: lucky_Luk
Дата сообщения: 11.12.2005 14:49
DJ makrus

Цитата:
в чем глюк проявляется? ошибается в количестве файлов? не должон вроде..., там же все просто как 2х2.

Я ошибся при написании задачи - все работает.

Цитата:
воспользуйся START-APPW

Прокатило.

Цитата:
по-поводу кодов - что-то вроде было, но точно не знаю.

За это отвечает слово ExitCodeProc, эта штука используется в связке со START-APPW.
Автор: lucky_Luk
Дата сообщения: 13.12.2005 09:48
DJ makrus
1. Нужно немного усложнить задачу подсчета колличества файлов в папке - надо чтобы при достижении определенного числа запускалось приложение. Пробовал c CASE, выдает ошибку стека в Action:. У меня подозрение что неправильно читается значение переменной num_of_files - может надо использовать не VALUE-переменную? Как положить значение переменной на стек чтобы цикл CASE его понял - если просто вбить %num_of_files% перед циклом то выдает ошибку.
При объявлении переменной типа VALUE в задаче мы задаем ее исходное значение - я так понял в нашей задаче исходное значение по фигу?
2. Я не нашел слова для остановки задачи... Как программно остановить выполнение задачи - допустим выводится запрос и если юзер выбирает "Нет" то задача останавливается?
3. Как отсортировать по алфавиту список задач, который показывается в контекстном меню nnCron по команде "Выполнить задачу" и "Редактировать"?
4. Как проследить выполнение задачи - что выводится на стек, что читается и т.д. - консоль это может?
Автор: scup
Дата сообщения: 16.12.2005 11:27
Из справки: WIN-CLICK: "win_pattern" "button_pattern"
"Нажимает" на указанную кнопку в указанном окне.
Что такое "button_pattern"? Конструкция WIN-CLICK: "мое окно" "ОК" у меня не работает. В справке о кодах кнопок я не нашел.

Автор: dad1969
Дата сообщения: 16.12.2005 12:15
scup
Насколько я понимаю надо смотреть через WinSpy и писать то что указано в Child window -> Text. Если там ничего нет, то ничего и не получится.
Автор: lucky_Luk
Дата сообщения: 22.12.2005 09:28
Что за слово "CR" (без кавычек)? Часто используется в примерах, а конкретно его описания не нашел.
Как зациклить выполнение команд - типа запустить программу и если выдало код возврата "ошибка" то запустить ее снова.
Автор: scup
Дата сообщения: 22.12.2005 17:16
В одной задаче можно реализовать: запускаем блокнот, а после закрытия блокнота запускался бы калькулятор. Я понимаю, что вопрос простой, но мне в одной задаче не удается такое сделать.
Автор: volodyalipkin
Дата сообщения: 22.12.2005 19:16
scup
RunOnce
NoDel
Time: 15 9 22 12 * 2005
Action:
ShowNormal NormalPriority
START-APPW: C:\WINDOWS\system32\notepad.exe
START-APPW: C:\WINDOWS\system32\calc.exe
Автор: DJ makrus
Дата сообщения: 22.12.2005 19:36
lucky_Luk
1.
Цитата:
Нужно немного усложнить задачу подсчета колличества файлов в папке - надо чтобы при достижении определенного числа запускалось приложение.

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

Цитата:
Пробовал c CASE, выдает ошибку стека в Action:. У меня подозрение что неправильно читается значение переменной num_of_files - может надо использовать не VALUE-переменную? Как положить значение переменной на стек чтобы цикл CASE его понял - если просто вбить %num_of_files% перед циклом то выдает ошибку.

А ты CASE пытался в шапке задачи (часть задачи в которой расписываются условия ее запуска, от тела задачи отделяется словом Action:) использовать? Скорее всего и это возможно (сам не пробовал), но это, возможно, будет немного сложнее. А для того что бы положить значение на стек нет ничего лучше, IMHO, переменной типа VALUE
Цитата:
При объявлении переменной типа VALUE в задаче мы задаем ее исходное значение - я так понял в нашей задаче исходное значение по фигу?
Для нашей задачи - по фигу, но ты попробуй не задать его, я попробовал

Цитата:
2. Я не нашел слова для остановки задачи... Как программно остановить выполнение задачи - допустим выводится запрос и если юзер выбирает "Нет" то задача останавливается?
ну посмотри например EXIT
Цитата:
3. Как отсортировать по алфавиту список задач, который показывается в контекстном меню nnCron по команде "Выполнить задачу" и "Редактировать"?
насколько я знаю, на данный момент - никак, но поскольку автора уже неоднократно просили о данной функции, то скорее всего в будущем это станет возможно.
Цитата:
4. Как проследить выполнение задачи - что выводится на стек, что читается и т.д. - консоль это может?
воспользуйся, к примеру, словами CRON-LOG и LOG:
Цитата:
Что за слово "CR" (без кавычек)? Часто используется в примерах, а конкретно его описания не нашел.
плохо искал , в Help'е, в его левой части, имеется три закладки: "Содержание", "Указатель", "Поиск", в данном случае воспользуйся третьей закладкой.
Я постоянно лазию в Help, и очень редко пользуюсь первой закладкой, иногда последней и постоянно второй
scup
Цитата:
В одной задаче можно реализовать: запускаем блокнот, а после закрытия блокнота запускался бы калькулятор...
посмотри START-APPW: (О! меня опередили )
Автор: lucky_Luk
Дата сообщения: 23.12.2005 10:04
DJ makrus

Цитата:
Это можно реализовать нескольками способами. Что-бы я не гадал на кофейной гуще выложи свою уже работающую задачу и максимально подробно распиши чего именно хочешь.(

С количеством файлов и т.п. разобрался, юзаю твой "счетчик файлов", CASE, файлы-флаги и пр. - работает на ура (если кому интересно могу дать алгоритм задачи - создание инкрементного архива, подсчет колличества архивов в папке, создание базового полного архива, все с анализом кодов возврата). С CASE, переменными и ошибкой стека тоже все уладил.

Цитата:
Для нашей задачи - по фигу, но ты попробуй не задать его, я попробовал

Да, если не задать то шняга получается - надо при объявлении переменной VALUE задавать любое число.

Цитата:
ну посмотри например EXIT

Я уже насобачился с IF ... THEN, но посмотрю - может так код задачи будет проще.

Цитата:
воспользуйся, к примеру, словами CRON-LOG и LOG:

Спасибо.
С циклами тоже вроде все хорошо - оказалось что для этого есть конструкция BEGIN ... UNTIL.

Цитата:
плохо искал в Help'е

Везде лазил, CR нашел только в примерах, нашел конструкции в которых оно употребляется, а нафига конкретно это слово нужно не нашел - поделись опытом.
Как я понял задача пишется на языке Форт. Можно ли из задачи сделать экзешник, который бы работал на компе без nnCron?

Еще одно - как сделать так чтобы допустим в папке какая-то прога создает файл и после этого из этой папки удаляется самый старый файл. Как создать, удалить файл и пр. знаю - интересует только как определить самый старый файл в папке. Вариант с количеством дней не катит. Подойдет только определение "возраста" файла относительно других файлов в папке или относительно текущей даты.
Автор: DJ makrus
Дата сообщения: 23.12.2005 11:39
lucky_Luk
Цитата:
...если кому интересно могу дать алгоритм задачи - создание инкрементного архива, подсчет колличества архивов в папке, создание базового полного архива, все с анализом кодов возврата...
ты случайно не резервным копированием занялся с помощью nnCron'а? Эта великая программулина, конечно, и с этим справиться, но что бы ей было легче, ее автор для резервного копирования создал еще один шедевр nnBackup? а вместе они образуют сногсшибательное комбо (с).
Итак, nnbackup:
топик на Ru-Board'e
знакомый читателям этого топика оффсайт
там же оффорум
и наконец страничка с свежайшими бетами (очень, надо сказать, стабильными) обеих программ.


Цитата:
Везде лазил, CR нашел только в примерах, нашел конструкции в которых оно употребляется, а нафига конкретно это слово нужно не нашел - поделись опытом.
А вот сюда "Help -> Работа с программой -> Инструменты -> Consol" заглядывал?


Цитата:
Как я понял задача пишется на языке Форт. Можно ли из задачи сделать экзешник, который бы работал на компе без nnCron?
да и такое возможно..., есть только одно НО - даже если твоя задача будет состоять из одной строки:

Код: TMSG: "Очень маленькая программа!" 15
Автор: lucky_Luk
Дата сообщения: 23.12.2005 13:46
DJ makrus

Цитата:
ее автор для резервного копирования создал еще один шедевр nnBackup?

Про nnBackup знаю, но привык пользоваться WinRAR (он ИМХО помощнее будет) поэтому в задаче непосредственно архивирование за WinRAR, а все остальное за nnCron.

Цитата:
А вот сюда "Help -> Работа с программой -> Инструменты -> Consol" заглядывал?

Искал CR поиском по Справке, спасибо, загляну.

Цитата:
в этом тебе поможет плагин files_pick.spf,

Скачал, попробую в работе.

Цитата:
Если заинтересовало - на оффоруме относительно недавно такой вопрос с ответом пробегали.

Это хорошо что пробегали, если бы ты еще и прямую ссылку дал...
Уже наковырял инфу на оффоруме. Я так понял можно просто таскать кронтаб вместе с nnCron.exe и не парится. Но было бы интересно посмотреть на действующий экзешник с исходником. И на оффоруме у кого-то задача не запустилась под WinXP SP2, как у экзешника с совместимостью с разными версиями Windows?
Автор: DJ makrus
Дата сообщения: 24.12.2005 00:11
lucky_Luk
Цитата:
...но привык пользоваться WinRAR (он ИМХО помощнее будет)...
даа, согласен - привычка штука сильная, а в остальном не могу с тобой согласиться, естественно, IMHO, но у WinRAR'а единственное преймущество перед Backup'ом - степень сжатия, а в остальном ..., ладно не будем войны организовывать итак уже начали оффтопить (если ты о возможностях nnBackup'а судишь по местному топику, то он немного отстает от реальности)


Цитата:
...Искал CR поиском по Справке...
хочешь верь, хочешь нет, но когда ты задал этот вопрос - я тоже воспользовался поиском по Справке, хотя и догадывался о значении этого слова, т. к. очень часто похожим пользуюсь.


Цитата:
как у экзешника с совместимостью с разными версиями Windows?
экзешники я не лепил, поэтому могу только теоретически предположить, что будет все как и с самим nnCron'ом - некоторые слова (см. Help) не будут работать в старых виндах.
Автор: ZuluS
Дата сообщения: 24.12.2005 07:50
Как заставить NNCron отслеживать скорость подключение к инету через Dial-Up и если скорость меньше заданой - реконектится?
Автор: DJ makrus
Дата сообщения: 25.12.2005 04:26
ZuluS
Цитата:
Как заставить NNCron отслеживать скорость подключение к инету через Dial-Up...
насколько мне известно обычным способом - никак, только с помощью сторонней программы определять скорость и каким-либо образом передавать nnCron'у.
Но я могу и ошибаться.
Автор: ZuluS
Дата сообщения: 25.12.2005 06:06
DJ makrus

Цитата:
с помощью сторонней программы определять скорость и каким-либо образом передавать nnCron'у

Вряд ли сторонние программы используют для этого свои API. В винде должна быть своя функция (имхо), т.к. скорость соединения виндой определяется, только вот какая?
Автор: evle
Дата сообщения: 25.12.2005 14:36
ZuluS
Для "определения скорости подключения к инету" не то что API нет, не особо понятно, что это вообще такое. Смотри, скажем, эту тему. Все что можно посчитать, это количество байт, прошедших через модем за заданное время. Для этого можно поискать API, но задача нетривиальная и ИМХО не стоит оставлять ее nnCron'у.


Вопрос: кому-нибудь попадалась формальная грамматика языка FORTH?
Автор: DJ makrus
Дата сообщения: 25.12.2005 21:32
evle
Цитата:
Вопрос: кому-нибудь попадалась формальная грамматика языка FORTH?
Честно говоря не совсем понял что понимается под грамматикой... словом может быть любой символ, разделяются слова между собой либо пробелом\ами либо переводом строки, слова чувствительны к регистру.
Поиск литературы лучше начать отсюда
Автор: lucky_Luk
Дата сообщения: 25.12.2005 22:01
DJ makrus
Посмотрел плагин Files_pick - это вещь, спасибо. А как заставить nnCron удалять найденный этим плагином самый старый файл? В плагине был пример как скопировать старый файл, по аналогии написал S" FDELETE - не пашет, ошибку стека выдает. И если бы еще nnCron имя этого файла в сообщении мог выводить... Как такое сделать?
Есть такое слово "." - где-то в хелпе про него читал типа оно со стека какое-то значение берет, а теперь немогу найти инфу, выручи.

Люди, кто-нибудь экзешник задачи делал - поделитесь исходником или скажите какими словами его сделать, очень интересно - на оффоруме только один пример висит - ничего не понял из него.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Как писать кириллицей, а НЕ латиницей (транслитом)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.