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

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

Автор: Stygis
Дата сообщения: 14.11.2007 05:22
Top10
Поищи по этой ветке - блокировка клавиатуры тут точно была.
Автор: DJ makrus
Дата сообщения: 14.11.2007 10:19
AndreyTNT
Цитата:
...Может кто сможет помочь...
Помочь сможем, это точно (ну по крайней мере будем пытаться), а вот выложить все готовое сразу - вряд ли.
1. Эта задача когда должна запускаться? Всего один раз или с определенной переодичность?
2. Если ты сам знаешь какие диски локальные, а какие сетевые, то проблем быть не должно, если же это неизвестно, то с этим прийдется дополнительно повозиться. Аналогично с папками исключениями создаешь файл содержащим по одному путю на строчку.
Итак, алгоритм примерно следующий: в цикле (FOR-FILES:...) с рекурсией перебираешь все файлы во всех подкаталогах всех локальных дисков по очереди. Внутри этого цикла тебе доступно полное имя текущего файла (%FOUND-FULLPATH%), сначала получаем его путь (ONLYDIR) зная который проверяем его по списку путей исключений (для чтения файла см. READ-LINE, а сравнивать можно с помощью RE-MATCH:), если путь попадает в исключения то завершаем работу с этим файлом, если же нет, то проверяем его расширение и в случае соотвествия требуемому - удаляем и так по кругу пока не закончатся файлы.
Все необходимое есть в Help'е, будет что-то не получаться - выкладывай текущий вариант задачи и опиши что и как делал и что при этом происходило, какие ошибки на экране и в логе nnCron'а.

Top10
Цитата:
...необходимо блокировать клаву и мышь ...
См. пример в Help'е: "Дополнительная информация --> А знаете ли вы? --> ...как вpеменно заблокиpовать юзеpу ввод с мыши/клавиатуpы?" эту задачу можно взять за основу, в шапке задачи указываешь время когда задача должна сработать: "Time: 30 18 15 11 * 2007". А в теле задачи после блокировки в цикле ожидаешь совпадения текущего даты/времени с заданным (см. "Работа с датами и временем") как только текущее станет больше заданного - разблокируешь ввод.
Есть тут только одно но (кто-то здесь кажется про него говорил) - три заветные клавиши "Ctrl+Alt+Del" разблокируют ввод, но блокируют комп, так что если пароль не известен, то это наверное не страшно.
Автор: alexvsm
Дата сообщения: 14.11.2007 13:52
Top10

Цитата:
необходимо блокировать клаву и мышь

определение слов
WINAPI: BlockInput USER32.DLL
: BlockTheInput TRUE BlockInput DROP ;
: UnblockTheInput FALSE BlockInput DROP ;
блокирует и клаву и мышь
Автор: Top10
Дата сообщения: 14.11.2007 18:41
Stygis
DJ makrus
alexvsm
Спасибо, будем дерзать!
Автор: lucky_Luk
Дата сообщения: 14.11.2007 20:37
Что-то давно новой версии не было... Если бы автор встроил в сабж модуль для запуска задач по голосовым меткам (типа как на мобильных телефонах) было бы классно.
Автор: galoper
Дата сообщения: 14.11.2007 22:23
Допишите пожалуйста, кому не составит труда:

WatchDisconnect
Rule: ONLINE: "PTN" NOT
Action:
RASUser: "ptn"
RASSecPassword: "PntvPntvPntvPntvPntvPl=="
DIAL: "PTN" 3 5

и дальше мне надо: если не законнектился, то перезагрузить компьютер,
вот тут и не работает-

IF: ONLINE: "PTN" NOT
Action:
REBOOT
THEN

Языка не знаю, а разбираться, пока времени нет...
Кто отзовется, заранее спасибо.
Автор: lucky_Luk
Дата сообщения: 14.11.2007 22:52
galoper

Цитата:
IF: ONLINE: "PTN" NOT
Action:
REBOOT

Навскидку, убери Action: перед REBOOT и двоеточие после IF.
Автор: galoper
Дата сообщения: 15.11.2007 00:28
#( redial
WatchDisconnect
Rule: ONLINE: "Avangard DSL Connection" NOT
Action:
RASUser: "ptn"
RASSecPassword: "PntvPntvPntvPntvPntvPl=="
DIAL: "Avangard DSL Connection" 3 5
IF ONLINE: "Avangard DSL Connection" NOT
REBOOT
THEN
)#

Восстановив соединение, перезагружается...
что-то не так...
Автор: DJ makrus
Дата сообщения: 15.11.2007 03:20
galoper
СНЧАЛА проверяем условие, а ПОТОМ результаты проверки отдаем IF ... THEN, и перед проверкой стоит добавить небольшую паузу, IMHO. Т.о. последние 4 строчки замени на:
Код: PAUSE: 5000 \ возможно паузу надо увеличить/уменьшить, настрой сам, лучше с запасом
ONLINE: "Avangard DSL Connection" 0=
IF
REBOOT
THEN
)#
Автор: galoper
Дата сообщения: 15.11.2007 20:56
"<условие> IF <действие_если_TRUE> THEN
<условие> IF <действие_если_TRUE> ELSE <действие_если_FALSE> THEN"

Да..., смотрю в книгу, вижу фигу - В хелпе именно так , как Вы пишите. Спасибо.



Автор: lucky_Luk
Дата сообщения: 25.11.2007 19:25
Как с помощью сабжа изменить значение ключа в реестре, например с 1 на 0, какое слово юзать?
Автор: alexvsm
Дата сообщения: 26.11.2007 04:41
lucky_Luk
Помощь > Ключевые слова nnCron > Работа с реестром (registry)
GET-REG: и REG-DWORD:
Автор: mistdream
Дата сообщения: 07.12.2007 19:24
Помогите найти ошибку... При запуске пишет: ошибка стека в Action

#( test_adsl
Time: 30 7 * * * *
Action:

BEGIN

WHILE
700 PAUSE
ONLINE? 0=
IF
DIAL-DLG: domolink
THEN

REPEAT
)#

С фортом только начала разбираться, так что простите за ламерский вопрос... :-[
Автор: DJ makrus
Дата сообщения: 07.12.2007 22:47
mistdream
Перед WHILE должно быть какое-то условие оставляющее флаг при равенстве которого единице этот цикл будет выполняться..., опишите словами что по твоему вашему данная задача должна делать.
Автор: mistdream
Дата сообщения: 07.12.2007 23:07
DJ makrus


Проверять в вечном цикле соединение с интернетом. И если оно разорвалось, вновь устанавливать....
Автор: Inspirats
Дата сообщения: 08.12.2007 19:08
вопрос, забавный глюк
я добаил функцию запуска файла горячими клавишами
#( Alt+2
WatchHotKey: "@2"
Action:
StartIn: "C:\WINDOWS"
ShowNormal NormalPriority
START-APP: C:\WINDOWS\g.txt
)#

теперь когда я в Punto Switcher меняю раскладку клавиатуры (рус\eng) значек(индикатор) Ru\En не меняется, хотя сама раскладка переводится!...
как сделать чтоб проги между сабой не конфликтовали???!

ps если запускаю таким образом другие программы в них такой же конфликт
Автор: daMIR
Дата сообщения: 08.12.2007 19:48
mistdream
А чем тебя не устраивает готовый вариант
WatchDisconnect ?
Автор: DJ makrus
Дата сообщения: 08.12.2007 21:41
mistdream
1. простите за фамильярность, только сейчас заметил что вы форумчанка

2. попробуйте вот эту задачку, должна работать:

Код: #( test_adsl
Time: 30 7 * * * *
SingleInstance \ без этой строчки у вас каждый день будет запускаться еще один экземпляр задачи
Action:
BEGIN
700 PAUSE
ONLINE? 0=
IF
DIAL-DLG: domolink
THEN
AGAIN
)#
Автор: mistdream
Дата сообщения: 08.12.2007 23:10
DJ makrus


Спасибо, твой вариант действительно работает...

И еще вопрос: как эту задачу потом можно остановить? Рано или поздно мне ведь умышленно придется отключиться от интернета. Приостанавливать nnCron в этом случае?


Автор: Inspirats
Дата сообщения: 09.12.2007 01:24
DJ makrus
я же написал в чем конфликт!

иконка у пунто свитчера не меняется с Ru на En в итоге ХЗ на каком языке я ща буду печатать, приходится каждый рас проверять и т.д. ...
в пунто свитчере раскладку меняю по правой Ctrl!

естественно это из-за nncorn, веть такая ерунда случается только в тех местах, которые я открываю горячими клавишами из nncorn
Автор: DJ makrus
Дата сообщения: 09.12.2007 05:41
mistdream
значит все-таки цикл не должен быть вечным?
А вы пробовали, как подсказал daMIR, WatchDisconnect, т.к. нет смысла городить еще один "вечный цикл" если такой уже имеется, вот так работает?
Код: #( test_adsl
WatchDisconnect
SingleInstance
Action:
BEEP: 500 500
TQUERY: "Отключились от Интернета! Подключаемся?" 15 Yes
IF DIAL-DLG: domolink THEN
)#
Автор: Inspirats
Дата сообщения: 09.12.2007 06:53
AsLoggedUser помогло.
Респект!
Автор: mistdream
Дата сообщения: 09.12.2007 13:38
DJ makrus

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

Теперь о результатах тестирования последнего варианта - встала сегодня утром, инет работает, но присутствует куча окон со следующими сообщениями:

1. Не удалось загрузить телефонную книгу.
Ошибка 1723: сервер RPC занят и не может завершить операцию
2. Не удалось загрузить диалоговое окно.
Ошибка 1723: сервер RPC занят и не может завершить операцию


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

Так как в мое отсутствие цикл все-таки должен быть вечным и не выдавать никаких запросов остается проблема связанная с вырубанием данной задачи в какой-то определенный момент осознанно... Надеюсь понятно написала...
Автор: DJ makrus
Дата сообщения: 10.12.2007 02:23
Inspirats
Цитата:
AsLoggedUser помогло
на нашем Ru-Board'е есть замечательная особенность - "шапка" топика, это первый пост топика который со временем становится первым постом на каждой странице топика и его многие могут править занося туда самое ценное полезное и часто востребованное со всего топика, мой совет который тебе помог - оттуда! , делай выводы...

mistdream
Цитата:
...инет работает, но присутствует куча окон со следующими сообщениями:...
тут два возможных пути:
1. устраняем причины - возможно вам тоже поможет авторизация задачи, добавьте слово AsLoggedUser в шапку задачи, если не поможет, добавьте туда же слово LoadProfile...
2. устранять последствия - будем закрывать эти сообщения по мере их появления, для информативности можно закрывать не все появляющиеся, а только начиная со второго, т.е. одно будет висеть и встав утром можно увидеть, что по крайней мере один раз была потеря соединения.


Цитата:
Так как в мое отсутствие цикл все-таки должен быть вечным и не выдавать никаких запросов...
осмелюсь утверждать, что это не совсем точный вывод исходя из той задачи которую вы ставите для nnCron'а, и еще добавлю, что проблема связанная "с вырубанием данной задачи в какой-то определенный момент осознанно", уже, на мой взгляд, решена , вы разобрались как работает последняя приведенная задача? А как традиционным способом вы отключаетесь от Инета?
Автор: mistdream
Дата сообщения: 10.12.2007 13:06
DJ makrus


Только что оттестировала еще один вариант:


#( test
WatchDisconnect
Action:
DIAL-DLG: domolink

)#


Работает на мой взгяд лучше. Никаких тысячи сообщений. Но в момент переподключения возникает все та же ошибка ошибка стека в action.
Автор: DJ makrus
Дата сообщения: 10.12.2007 14:51
mistdream
Цитата:
Работает на мой взгяд лучше...
если он вам больше нравится - ваше право выбирайте что по душе, но с этим вариантом надо еще думать как отключаться от Инета...
Цитата:
Никаких тысячи сообщений
вы выяснили от чего эти сообщения? Пробовали п.1 из моего предыдущего сообщения? Какие результаты?

Цитата:
...возникает все та же ошибка ошибка стека в action.
логических ошибок не видно, вроде, проверяйте побуквенно имя провайдера, посмотрите содержимое файла nncron.out, если там больше 4-х строк копируйте их сюда, что еще появляется в лог-файле помимо "ошибка стека в Action:" в момент переподключения?
Автор: mistdream
Дата сообщения: 10.12.2007 20:41
DJ makrus


Честно сказать попробовать п.1 из предыдущего сообщения времени не было. А сообщения непонятно почему возникают. Вернее появилась еще одна мысль, от предыдущих предположений отказалась. Мысль следующая - утром сегодня встав увидела все тоже огромное количество подобных окон, стала их закрывать и наблюдала следующую картину - соединение с инетом есть, но крон пытается подключиться снова. Может это и есть причина?


Теперь про текущий вариант - имя провайдера абсолютно правильно, да и если бы в нем была ошибка, соединение не переустанавливалось бы, а оно переустанавливается. В nnCron.out пусто.
Автор: DJ makrus
Дата сообщения: 11.12.2007 04:50
mistdream
рву на себе в миг поседевшие волосы
DIAL-DLG: оставляет после себя флаг в соответствии с успешностью установленного Инет-соединения
тогда ваш последний вариант в простейшем случае должен выглядеть так:
Код: #( test
AsLoggedUser
WatchDisconnect
Action:
DIAL-DLG: domolink
DROP
)#
Автор: olegupb
Дата сообщения: 11.12.2007 21:09
Создал в nncron обычную задачу.
Запуск программы D:\PROG\SOFTRW\zw.exe с параметром D:\PROG\SOFTRW\zw.cfg.
Выходит вот так:
Параметры задачи: каждую минуту, ждать завершения, выполнять от текущего пользователя, как сервис(не влияет).

Цитата:
AsLoggedUser
Action:
StartIn: "D:\PROG"
ShowNormal NormalPriority
AsService
START-APPW: D:\PROG\SOFTRW\zw.exe D:\PROG\SOFTRW\zw.cfg

Проблема: nnCron не ждет завершения задачи.
Где косяк?
Автор: mistdream
Дата сообщения: 11.12.2007 21:13
DJ makrus


Ошибка стека вроде пропала... Спасибки огромное... Оттестирую и завтра отпишусь о работе...


Писала сообщение и заодно оттестировалась в процессе его отправки. Получилось следующее - соединение с инетом было, но вот отослать было невозможно ничего. Даже аська отвалилась... Пришлось отключаться от инета и заходить заново. Хотелось бы в подобных случаях еще принудительно разрывать соединение и переустанавливать его... :-[ Это пингом проверять? Или в данном случае помог бы как раз ONLINE?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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