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

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

Автор: daMIR
Дата сообщения: 24.10.2004 10:40
STEEL
Ты обозначения звадачи не забыл?

Цитата:
)#

И еще попробуй мою задачу в кронтаб засунуть, только время исправь. Если не работает, то либо крон глючит, либо где-то в настройках монитора надо лазить.
Автор: STEEL
Дата сообщения: 24.10.2004 18:38
daMIR
Не помогло. В мониторе полазил, ничего особенного не нашёл. У тебя какая версия? Моя v 1.89 Build 997 20.05.2004. Может с ней чё не так?
Автор: daMIR
Дата сообщения: 24.10.2004 19:16
STEEL
Я не знаю почему не работает. у меня весрия. попробуй перестаивть v 1.89 Build 993 17.03.2004

Добавлено
STEEL
Я понял почему у тебя не сработало

Цитата:
Дополнительно -> Текст определения задачи:
Верно?

Хех.Правой кнопкой на Кроне, Редактировать-Crontab: nncron.tab. Туда зауснь мою задачу

Цитата:
#( tets_monitor_off
Time: 12 4 24 10 * 2004
Action:
MONITOR-OFF
)#


Псоле этого сохранись, зайди в Редактировать-tets_monitor_off и там поставь нужное тебе время и имя.
З.Ы. Сории что сразу не сообразил, просто жутко торопилсся
Автор: DJ makrus
Дата сообщения: 25.10.2004 00:04
STEEL
Если ты добавляешь задачу через графический интерфейс:
Закладка "дополнительно" -> "текст определения задачи", то надо добавить:
Код: Time: 12 4 24 10 * 2004
Action:
MONITOR-OFF
Автор: wizzi
Дата сообщения: 25.10.2004 02:11
а как перенести nncron со всеми установками на другой комп?
Автор: DJ makrus
Дата сообщения: 25.10.2004 10:21
wizzi
Самый простой способ это после установки nnCron'а на вторую машину - скопировать целиком папку в которой стоит nnCron на первой машине с перезаписью совпадающих папок\файлов, при соответсвии осей и релизов nnCron'а все должно пройти на ура (сам не пробовал, но теоретически препятсвий для этого вроде бы нет ). Даже если оси разные, то все равно должно быть все пучком.
Если используются реестровые и файловые переменные, то надо незабыть соответствующие файлы и ключи реестра.
Но, обычно, для переноса достаточно скопировать следующие файлы:
nncron.ini - все настройки программы
файлы *.tab - содержат задачи (какие из них подключены см. в nncron.ini)
файлы *.spf - плагины (какие из них подключены см. nncron.ini)
реестровые переменные
файловые переменные

Кажется ничего не забыл
Вот еще что, после копирования кронтабов, задачи надо проверить на соответсвие путей к тем или иным файлам и ключам реестра, т. к. они могут (почти всегда) отличаться
Автор: Nicka_Grey
Дата сообщения: 25.10.2004 12:22
wizzi
А что появлялись проблемы при переносе?
Насколько я знаю, точнее я сам так делаю, просто копирую папку nncron с одной машины на другую - и усе!
Потом правда еще нужно запустить сам nncron службу, для этого у него у самого все уже имеется.
Так что все довольно просто.
Автор: STEEL
Дата сообщения: 25.10.2004 18:19
daMIR
DJ makrus
Если бы так было всё просто. Я работал с кроном в юниксе, поэтому имею представление, что есть крон-таб. На оф. форуме кричат что это возможно из-за XP SP2 ;-(
Автор: DJ makrus
Дата сообщения: 25.10.2004 19:02
STEEL

Цитата:
Я работал с кроном в юниксе, поэтому имею представление, что есть крон-таб.
твои слова:
Цитата:
Может быть я MONITOR-OFF не туда вставляю?

ввели нас в заблуждение!

На том же оффоруме дается совет как заставить работать MONITOR-OFF в XP SP2:
Цитата:
добавь вот эти две строки в конец nncron.ini:

Код: : WM-SYSCMD1 0x112 0xFFFF SendMessageA DROP ;
' WM-SYSCMD1 ' WM-SYSCMD JMP

тогда MONITOR-OFF заработает.
Автор: NULL
Дата сообщения: 26.10.2004 00:38

Цитата:
На том же оффоруме дается совет как заставить работать MONITOR-OFF в XP SP2:
Цитата:добавь вот эти две строки в конец nncron.ini:

Код:: WM-SYSCMD1 0x112 0xFFFF SendMessageA DROP ;
' WM-SYSCMD1 ' WM-SYSCMD JMP

тогда MONITOR-OFF заработает.


спасибо,, волшебные строки помогли.. у меня эта фишка уже пашет..
Автор: elalexey
Дата сообщения: 31.10.2004 21:08
Доброе время суток.

как известно:


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



Есть ли выход из этой ситуации? Необходимо, перехватить команду на shutdown, дождаться завершения задачи nnCron и выключить компьютер.

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

Буду признателен за помощь

Удачи
Автор: roman78
Дата сообщения: 06.11.2004 19:32
в клипборде имеется некое число в круглых скобках (например "(123)" или "(-8)", без кавычек). Можно ли кроном избавиться от этих скобок и если число от -10 до 10, то заменить на цифру 0?

От скобок можно избавиться после вставки в блокнот ("грязный" способ, но на большее меня не хватает ), а как число на стек положить чтоб потом через CASE в случае нужды на ноль заменить и обратно в клипборд чтоб вернуть в тот же блокнот?
Или есть более грамотная последовательность действий?
Автор: DJ makrus
Дата сообщения: 07.11.2004 00:22
roman78
Загляни в "Дополнительная информация -> Неотложная помощь по форту -> Как пpеобpазовать число в стpоку и наобоpот?"
В этом разделе есть, на мой взгялд, вся необходимаю информация для решения твоей задачи

А алгоритм примерно такой:
1. ложим на стек содержимое буфера обмена ( переменная %CLIPBOARD%)
2. избавляемся от скобок (см. выше)
3. строку в число
4. проверка числа
5. число в строку
На большее сейчас нет времени, через пару дней появится, если к тому времени не получится, то полезем глубже

(P. S. если не получается, то не жди двух дней, пиши здесь же - кто-нибудь еще поможет )
Автор: roman78
Дата сообщения: 07.11.2004 02:25
DJ makrus
спасибо за подсказку. На оффоруме предложили такой вариант:

Цитата:

CLIPBOARD@

S" /\((-?\d+)\)/" RE-MATCH
IF
$1 S>NUM

DUP ABS 11 <
IF
DROP
0
THEN

N>S CLIPBOARD!
THEN

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


Добавлено
пока могу сказать что оно работает
Автор: roman78
Дата сообщения: 07.11.2004 21:44
хех... как вы думаете, что должно произойти после этого:

Цитата:

SEND-KEYS: "{{123}}"

я рассчитывал получить в блокноте {123}, но увидел только скобки
Правда билд у меня не последний - 1.89 Build 993. Есть какиенить мысли?
Автор: daMIR
Дата сообщения: 08.11.2004 09:26
roman78
Попробуй так

Цитата:

SEND-KEYS: "{{}"
SEND-KEYS: "123}"

Вроде работает.


Добавлено
Заметил что при установке SEND-KEYS на WatchHotKey работают только простые комбинации. Т.е. нельзя повесить SEND-KEYS на WatchHotKey: "^+x", но можно на WatchHotKey: "{F10}" и т.п. почему?
Автор: roman78
Дата сообщения: 08.11.2004 12:39
{{}123{} - так тоже получается искомое (спасибо Tez'y), похоже глюк...

а с нот кеями фих знает что за грабля: у меня в системе на диске С:\ те же траблы, а на D:\ (то же винХР сп1, и недавно стала сп2) все ок... Гм... во втором случае крон не с системного диска запускается, а с E:\. Может в этом дело? (ну типа еще глюк )
Автор: daMIR
Дата сообщения: 08.11.2004 15:09
roman78
Я не понял у тебя проблема вообще с нот кеями, или только с нот кеям где в активациистоит SEND-KEYS? А задачи одни и те же?
Автор: roman78
Дата сообщения: 08.11.2004 16:14
постой-постой, что значит "при установке SEND-KEYS на WatchHotKey"?
В поле "WatchHotKey" не пишется "SEND-KEYS", только коды клавиш.

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

Кста, у тебя раскладка "правильная" стоит? А то помнишь был момент: хоткей на англ., а раскладка русская - не работает.
Автор: daMIR
Дата сообщения: 08.11.2004 17:13

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

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

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

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

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

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


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

Многнокопочные нот кеи работают в какой задачи, т.е. после Action что идет?
Автор: roman78
Дата сообщения: 08.11.2004 18:47
Погонял хоткеи... извиняюсь за дезу - винды работают с кроном одинаково.
Дело в том что SEND-KEYS начинает работать когда твои хот-кеи все еще нажаты, те либо шустрее пальцы от клавы отдергивай (вряд ли успеешь ), либо паузу вставляй.

Добавлено

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

не уверен, но может так попробовать: WatchHotKey: "^(+q)"
Автор: daMIR
Дата сообщения: 08.11.2004 21:33
Т.е. попробовать задачу:

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

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


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

В чем ты не уверен? Комбинация Ctrl+Shift+q.

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


Цитата:

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

Автор: daMIR
Дата сообщения: 17.11.2004 17:32
Не работает данная задача:


Цитата:
#( 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. убить два процесса.
Я хочу, после того как я СПЕЦИАЛЬНО (для этого-то я поставил паузу) вышел из
Интернета Крон убил бы предназначенные для работы в Инете программы.
Может кто-нибудь посоветует более изящную и работоспособную задачу?
З.Ы. После думаю сделать обратную последовательность: при входе в Инет
по прошествии определенного времени Крон бы запускал нужные программы.


Добавлено
З.Ы.Ы. Вобщем дополняю:
Задача работает, только не работает пауза. Что делать?
Как сделать задачу наоборот?
Автор: DJ makrus
Дата сообщения: 18.11.2004 14:19
daMIR
1. По-моему PAUSE: нельзя использовать в шапке задачи
И я не совсем понял зачем тебе эта пауза, объясни по-подробнее (т. е. опиши как ты представляешь работу задачи с паузой и без паузы, к тому же такой маленькой)
2. Для чего тебе проверка на отсутствие соединения, если задача должна сработать при его разрыве?
3. Если же тебе все-таки нужны и пауза и проверки, то возможен следующий вариант:
Переносишь паузу и проверки в тело задачи, при этом Rule: меняешь на IF ... THEN и все.
4.
Цитата:
Как сделать задачу наоборот?
Что ты имеешь в виду? Запуск приложений при появлении соединения с I'net'ом? Там ведь ничего сложного
Автор: kspy
Дата сообщения: 18.11.2004 14:43
Может так надо?
Только нахрена 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
)#

Автор: daMIR
Дата сообщения: 18.11.2004 16:46
DJ makrus

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

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

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

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

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

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

kspy
Практически то, что нужно. Но между разрывом сединения и проверкой на подключение должна быть пауза.
Автор: DJ makrus
Дата сообщения: 18.11.2004 21:37
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
)#
Автор: daMIR
Дата сообщения: 19.11.2004 15:21
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 надо подумать...
Автор: DJ makrus
Дата сообщения: 20.11.2004 03:15
daMIR

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

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

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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