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

» nnCron

Автор: Customs
Дата сообщения: 29.03.2009 14:21
а еще, расскажите про отличия от xStarter
Автор: ziii
Дата сообщения: 30.03.2009 15:19
Мне уже ответили в другой теме:
sproxy

Цитата:
nnCron - довольно не плох.

1. Хотя на первый взгляд "on line документации" он немного ограницен в возможностях (пример: не нашел работу с ini, а реестр?).

2. В AutoIt возможно создать конечный самодостаточный exe файл.
Как понимаю, в nnCron для выполнения сценария всегда нужен исполнитель (интерпритатор nnCron.exe).

3.+ на первый взгляд, все, что можно сделать с помощью nnCron - можно реализовать с помощью AutoIt

4. С помощью AutoIt можно создовать программы с GUI интерфейсом, что мега круто т удобно ))

5. И всетаки, nnCron - это программа "планировщик и менеджер", а AutoIt - это "это язык для написания сценариев",
соотвественно, AutoIt более гибок в возможностях.

А использовать, имхо, думаю нужно именно то - что наилучше соответсвует/подходит для выполнения задачи:
по качеств и возможностям - как предоставляемым, так и имеющимся у Вас.
Автор: Tnav
Дата сообщения: 30.03.2009 17:20
как открыть ссылку в браузере по умолчанию? Или конкретно в Опере...
пробовал запускать оперу с параметром
START-APP: C:\Program Files\Opera\opera.exe http://ru-board.com
но такой способ в одной и той же задаче срабатывает почему то через раз (
Автор: alekra
Дата сообщения: 30.03.2009 20:47
Tnav
Можно попробовать открывать страницу при помощи API-функции ShellExecute из shell32.dll. См. слово WINAPI и справку по нему.

Вызов функции не из nnCron выглядит так: ShellExecute 0, "open", " http://ru-board.com", 0, 0, 5.
Автор: DJ makrus
Дата сообщения: 31.03.2009 13:02
ziii
Цитата:
Скажите пожалуйста основные отличия nnCron от AutoIT?
...
Мне уже ответили в другой теме:
Изложу то же самое со своей колокольни:
Цитата:
1. Хотя на первый взгляд "on line документации" он немного ограницен в возможностях (пример: не нашел работу с ini, а реестр?).
Ну если ограниченность заключается в указанных примерах , то для работы с ini подключаем плагин ini.spf , а для работы с реестром и подключать ничего не надо (см. Help). Все! nnCron безграничен в возможностях! Ну по крайней мере не сильнее чем AutoIT
А теперь серьезно .
nnCron написан на ЯП Forth и полностью его поддерживает, все подключаемые плагины содержат код на Форте, более того, все кронтабы с задачами содержат код на Форте, каждая задача (неважно: добавленная через GUI-форму или в текстовом редакторе) - это Форт-слово, такое же равноправное, как например REG-DELETE-VALUE: или INI-SET-VALUE
Форт - не популярный, аскетичный, своеобразный но самое главное ни в чем не ограничивающий программиста язык (и при этом достаточно легок в изучении)..., все это справедливо и для nnCron'а, т.е. все что можно сделать используя язык программирования (а теоретически это все программы которыми мы пользуемся на компьютере) можно сделать с помощью nnCron'а (говорим nnCron - подразумеваем Форт, в какой-то мере верно и обратное: говорим Форт - подразумеваем nnCron ), ну и на практике список выполняемых nnCron'ом задач - широк, от автовхода в Винду с паролем, до перезагрузки DSL-модема..., а вы говорите ini-файлы, реестр ...
Сразу оговорюсь, никогда не пользовался AutoIt'ом, хотя считаю ее вполне достойной программой уверенно занимающей свою нишу..., но мне и nnCron'а вполне хватает

Цитата:
2. В AutoIt возможно создать конечный самодостаточный exe файл.
Как понимаю, в nnCron для выполнения сценария всегда нужен исполнитель (интерпритатор nnCron.exe).
Нет, не всегда, это сделать не так легко как в AutoIt, но возможно, видимо пока не очень нужно..., есть свои сложности, но нет пока того кто бы хотел, и, самое главное, мог от них избавить пользователей nnCron'а.


Цитата:
3.+ на первый взгляд, все, что можно сделать с помощью nnCron - можно реализовать с помощью AutoIt
это утверждение вызывает у меня сомнения, а вот обратное почему-то нет (почему? см. п.1)

Цитата:
4. С помощью AutoIt можно создовать программы с GUI интерфейсом, что мега круто т удобно ))
с помощью nnCron'а - аналогично можно, т.е. он так же крут, по поводу удобства - не совсем понял к чему относится: к процессу создания таких программ или к процессу их использования? В первом случае вполне допускаю что в AutoIt это удобнее, т.к. я не знаю как там это вообще делается, и наверное там все так делается , а во втором случае это утверждение очень спорное и не по теме...

Цитата:
5. И всетаки, nnCron - это программа "планировщик и менеджер", а AutoIt - это "это язык для написания сценариев"",
соотвественно, AutoIt более гибок в возможностях.
nnCron это ЯП Форт "нарощенный" для удобства до "планировщик и менеджер", но остающийся при этом ЯП, а AutoIt это язык только для написания сценариев, соотвественно у nnCron'а больше возможностей


Цитата:
А использовать, имхо, думаю нужно именно то - что наилучше соответсвует/подходит для выполнения задачи...
Согласен с этим, на оффоруме один хорошо разбирающийся в nnCron'е человек писаАл, что эти две программы очень хорошо дополняют у него друг друга.

Customs
Цитата:
а еще, расскажите про отличия от xStarter
с этой программой я сталкивался, даже бегло пробегал по ее справке по ее возможностям (дело было 2-3 года назад и что щас вспомнил, так это минимальная пауза которую можно вставить = 1 секунде) видел и в деле..., мое IMHO - сильная ограниченность в возможностях по сравнению с nnCron'ом, к тому же закрытый исходный код, не знаю есть ли там возможность подключать плагины или как-то иначе расширять функциональность заложенную и ограниченную! автором, т.е. жертва функциональностью для удобства "домохозяек", кто-то готов на такую жертву, я - нет.

Tnav
Цитата:
...но такой способ в одной и той же задаче срабатывает почему то через раз (
Оперой не пользуюсь, как передавать ей в комстроке параметры не знаю, узнавай в другом топике.
Покажи задачу целиком из кронтаба. Авторизацию не забыл указать?
Если строчку C:\Program Files\Opera\opera.exe http://ru-board.com поместить в батник - стабильно срабатывает?
Автор: Tnav
Дата сообщения: 31.03.2009 14:59
alekra
спасибо за наводку, правда самому сделать не удалось, нашел рабочий вариант в прошлом топике по nnCron'у

кому интересно:
5 0 0 Z" http://ru-board.com" Z" open" 0 ShellExecuteA DROP


еще два вопроса:

1) слово HTTP-LM
>> Возвращает код возможной ошибки и строку с содержимым заголовка Last-Modified, полученную от удаленного http-сервера, т. е. время последнего изменения удаленного ресурса.
как присвоить строковой переменной содержимое заголовка Last-Modified, для дальнейшей обработки?

2) как организовать безусловный переход? в справке не нашел (
Автор: alekra
Дата сообщения: 31.03.2009 21:07
Tnav
Слово PLACE помещает строку в переменную. Примерно так:

Код: HTTP-LM: "http://ru-board.com"
DROP name PLACE
MSG: "%name COUNT%"
Автор: Tnav
Дата сообщения: 01.04.2009 10:10
alekra
>> Слово PLACE

да, сенк.

>> порекомендовал бы построить код так, чтобы избежать такого перехода.

тогда обойдусь длииным, через пол задачи, IF'ом
Автор: Tnav
Дата сообщения: 03.04.2009 16:37
еще вопрос =)

имеем такою задачу

#( Test
CREATE str1 256 ALLOT
Action:
S" 123456789" str1 PLACE
S" Test" str1 PLACE
4 str1 COUNT DROP str1 COUNT DROP 0 MessageBoxA DUP
6 = IF THEN DROP)#



месседж бокс получаем с мусором в конце текста (должно быть просто "Test" без цифр)


почему так происходит и как предотвратить?
Автор: alekra
Дата сообщения: 03.04.2009 19:41
Tnav
4 S" %str1 COUNT%" EVAL-SUBST DROP S" %str1 COUNT%" EVAL-SUBST DROP 0 MessageBoxA

Автор: Tnav
Дата сообщения: 04.04.2009 10:17
alekra
то что доктор прописал! сенк =)
Автор: DJ makrus
Дата сообщения: 06.04.2009 10:59
Tnav
Цитата:
почему так происходит
Ты выделил область памяти заполненную нулями длиной в 256 ячеек.
В задаче помещаешь в этот буфер строку длиной в 9 символов, т.е. 10-ый символ в строке - "0". Затем помещаешь строку меньшей длиной в 4 символа которые затирает значения только в первых 4-х ячеках буфера и блийжайший символ содержащий "0" по прежнему в 10-ой ячейке. MessageBoxA получив адрес буфера считывает строку до первой ячейки с "0", т.е. первые 9 ячеек в которых и нужная нам строка "Test" и мусор от прежнего содержимого ячеек.
Цитата:
как предотвратить?
1. Использовать два буфера вместо одного
2. Заносить новые строки в тот же буфер дополнительно записывая "0" в конце помещаемой туда строки, вот например как будет выглядеть твоя задача:
Код: #( Test
CREATE str1 256 ALLOT
: 2nd-PLACE ( a1 u1 a2 -- ) 2>R 2R@ PLACE 2R> + 1+ 0 SWAP ! ; \ помещаем в буфер и дописываем "0"
\ Записываемая строка должна быть хотя бы на 1-цу меньше длины буфера, что бы было куда писАть "0"
Action:
S" 123456789" str1 PLACE
S" Test" str1 2nd-PLACE
4 str1 COUNT DROP str1 COUNT DROP 0 MessageBoxA DUP
6 = IF THEN DROP
)#
Автор: bornbill
Дата сообщения: 17.04.2009 20:37
1. Есть ПО стороннее которое выдаёт ошибку
2. Итого как проанализировать есть ли во всех окнах всех лабелах (собственно там и пишится ошибка) указанное варажение например "Программа не может быть"
Заранее благодарен.
Автор: Jans
Дата сообщения: 24.04.2009 12:55
люди, подмогните
задача в том, чтобы на ADSL мопеде, при разрыве сессии и смене ИП адреса, на заданное мыло слался лог (мессага, в случае с QIP ) с указанием новых данных по подключению,- ИП, маска и пр.

заранее
Автор: DJ makrus
Дата сообщения: 28.04.2009 07:34
bornbill
Цитата:
Итого как проанализировать есть ли во всех окнах всех лабелах (собственно там и пишится ошибка) указанное варажение например "Программа не может быть"
Тебе же наверное все-таки не надо во всех окнах, а только в конкретных..., хотя это не сильно что меняет...
Используй цикл по окнам FOR-WINDOWS: ... ;FOR-WINDOWS, при необходимости задействуй внутри этого цикла цикл по дочерним окнам FOR-CHILD-WINDOWS: ... ;FOR-CHILD-WINDOWS и с помощью регулярных выражений сверяй с искомым заголовком...
Что бы определиться какого уровня твое окошко, посмотри его сначала утилитой встроенной в nnCron (вызывается из контекстного меню иконки) или аналогичными.

Jans
Цитата:
...чтобы на ADSL мопеде, при разрыве сессии и смене ИП адреса, на заданное мыло слался лог...
Заведи переменную (лучше файловую) в которой будешь хранить IP текущей сессии, пусть твоя задача стартует раз в минуту (вроде вполне достаточная точность для подобной задачи?) и с помощью "ipconfig /all >C:\currentIP.txt" получает текущий IP (через построчное чтение файла) сверяет с тем что в переменной и если отличается от него, то отправляет весь файл currentIP.txt тебе на мыло (см. тему на оффоруме), в случае месаги через QIP - не знаю есть ли необходимые команды комстроки, но наверняка это можно сделать через эмуляцию мыши/клавы..., и не забудь при смене IP сохранить новое значение в переменной.
Автор: Tnav
Дата сообщения: 28.04.2009 13:33

Код: HTTP-LM: "http://blablabla123.org/index.php"
Автор: valmont al
Дата сообщения: 04.05.2009 21:00
Друзья, прошу помощи, уже весь измучался.
Условие:
На диске есть директория А и директория Б. В директорию А постоянно записываются файлы (неважно откуда и как). Мониторю появление этих файлов с помощью WatchFile.
Задача:
При появлении файла в директории А перенести его в директорию Б, после чего внешнему приложению передать имя файла.
Тобишь Run C:\Programma.exe - <filename>
И всё бы хорошо, только не могу я придумать как получить имя этого перемещаемого файла
%FOUND-FILENAME% вроде как оттуда.. но не придумаю как с ним обращаться..
Помогите
Автор: DJ makrus
Дата сообщения: 06.05.2009 08:27
Tnav
Цитата:
...Есть какие то идеи, как этого избежать...
А тех идей что изложены в Help'е не достаточно? Есть пример с HTTP-LM в котором обрабатывается и случай недоступности/отсутствия (что именно можно определить с помощью HTTP-RESULT) запрашиваемого ресурса..., и там не должно быть ошибок стека даже в этом случае..., покажи задачу которая выдает ошибку.

valmont al
Цитата:
И всё бы хорошо, только не могу я придумать как получить имя этого перемещаемого файла...
Покажи свою задачу, а я подкорректирую ее...
Походу еще вопросы:
1. в исходном состоянии директория "А" должна быть пустой? Или там могут быть какие-нибудь файлы которые не надо трогать?
2. покажи конкретный рабочий пример командной строки (например, как бы ты передал файл "C:\Temp\foto.jpg в батнике"
3. В каком диапазоне варьирует размер обрабатываемых файлов?
Автор: valmont al
Дата сообщения: 08.05.2009 11:08
DJ makrus
Замудрил я видимо сильно мысль. Упрощу.
Есть директория. В неё копируется/перемещается файл.
Нужно передать имя/путь этого файла внешнему приложению.
К примеру, в директорию C:\1\ перемещается файл 222.txt
В результате nncron должен запустить "C:\Windows\notepad.exe C:\1\222.txt"
Т.е. в результате этот файл откроется в ноутпаде.
Автор: DJ makrus
Дата сообщения: 08.05.2009 19:05
valmont al
Цитата:
Замудрил я видимо сильно мысль.
да нет вроде..., просто возможно к этим вопросам все-равно прийдется вернуться...
Цитата:
В результате nncron должен запустить "C:\Windows\notepad.exe C:\1\222.txt"

Код: S" C:\Windows\notepad.exe " \ пробел в конце строки в кавычках обязателен
    FOUND-FULLPATH S+ START-APP
Автор: valmont al
Дата сообщения: 09.05.2009 10:54
DJ makrus

Код: WatchFile: "D:\1\*.txt"
Action:
S" C:\Windows\notepad.exe "
FOUND-FULLPATH S+ START-APP
Автор: Tnav
Дата сообщения: 09.05.2009 11:55
DJ makrus

Цитата:
А тех идей что изложены в Help'е не достаточно?

да, протупил
Автор: DJ makrus
Дата сообщения: 09.05.2009 22:01
valmont al
Лучше как-то вот так:
Код: SingleInstance
WatchDir: "D:\1"
WATCH-CHANGE-LAST-WRITE
Action:
FOR-FILES: "D:\1\*.txt"
S" C:\Windows\notepad.exe "
FOUND-FULLPATH S+ START-APP
;FOR-FILES
Автор: basstard
Дата сообщения: 10.05.2009 18:38
не удается отследить запуск произвольного процесса:
nnCron реагирует только на те, которые сам же и породил,
например:

Код: WatchProc: "notepad.exe"
Action:
PLAY-SOUND: "C:\Windows\Media\tada.wav"
Автор: DJ makrus
Дата сообщения: 10.05.2009 22:06
basstard
Цитата:
...при открытиии блокнота ничего не происходит...
От чего имени работает nnCron и от чьего Notepad? Какие варианты авторизации пробовал?
Кроме того ты действительно пытаетешься отловить запуск блокнота или это тестовая задача? Делов в том, что некоторые программы всячески пытаются замаскировать свои процессы...
Автор: basstard
Дата сообщения: 11.05.2009 12:46
DJ makrus,
дело, оказывается, было не в том, что notepad,
запущенный из nnCron’а — это дочерний к нему процесс,
а в том что 64-х битная винда для 32-х битного nnCron’а
запускает специальный 32-х битный notepad из папки
%SystemRoot%\SysWOW64, и nnCron его видит
не потому, что он дочерний, а потому, что он 32-х битный.
nnCron может работать в 64-х битной среде,
но не видит в ней 64-х битных процессов. такие дела…
Автор: valmont al
Дата сообщения: 12.05.2009 11:58
DJ makrus
Спасибо дружище, так работает!
Один нюанс ещё, если нужно вставить ключ, где его прописать ?
Тобишь запускать ноутпад с ключом "key"
C:\Windows\notepad.exe /key
Автор: iknow
Дата сообщения: 13.05.2009 16:14
Здравствуйте всем

скажите пожалуйста - правильный ли формат для задачи которая должна выполняться каждую вторую субботу в 11 часов?
Time: 0 11 * * 6/2 *
Автор: DJ makrus
Дата сообщения: 14.05.2009 09:44
basstard
Спасибо за информацию

valmont al
Цитата:
...если нужно вставить ключ, где его прописать ?
Все там же..., смотри, вот уже известный тебе вариант + мои комментарии:
Код: S" C:\Windows\notepad.exe " \ положили на стек строку с полным путем процесса и сразу добавили в конце него пробел
\ что бы последующая "приклеиваемая" строка "приклеивалась" через пробел а не в притык
FOUND-FULLPATH \ положили на стек еще одну строку с полным путем открываемого файла
S+ \ склеили две строки находящиеся на стеке, к первой дописали (приклеили) вторую и получили одну целую строку
START-APP \ запустили приложение описанное в верхней на стеке строке со всеми параметрами
\ находящимися в той же строке на вершине стека
Автор: valmont al
Дата сообщения: 14.05.2009 21:08
DJ makrus
Пробую.. что-то ничего не выходит

Код:
WatchFile: "D:\1\*.mp3"
Action:
FOR-FILES: "D:\1\*.mp3"
S" C:\Program Files\Winamp\winamp.exe /add "
FOUND-FULLPATH S+ START-APP
;FOR-FILES

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354

Предыдущая тема: Autodesk AutoCAD


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