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

» nnCron

Автор: lucky_Luk
Дата сообщения: 09.05.2013 10:57
Словил глюк на 1.93b13 Build 1172. Действует регистрация для некоммерческого использования, и тут вылазит окошко, мол пробный период истек, купите, регистрация все еще действует.
И как понять, зарегистрирован он или нет?
Автор: VoidVolker
Дата сообщения: 09.05.2013 14:38
Можно попробовать переустановить или удалить файл ключа и просто повторить регистрацию.
Автор: lucky_Luk
Дата сообщения: 09.05.2013 16:06
VoidVolker
У меня из папки сабжа куда-то пропал, или вообще не создавался, ключевой файл nn.key. Может из-за необходимости админских прав и работы UAC на Win7. А я ставил сабж не так давно, может пробный период был, хоть сабж и говорил, что зарегистрирован.
Дал ему ключевой файл бесплатной регистрации, сделанный на другой машине с WinXP, посмотрим что запоет.

Добавлено:
Проверил на чистой виртуальной машине с семеркой. Есть баг - при установке в Program Files\nnCron при регистрации не создается файл nn.key. Регистрация проходит нормально, в интерфейсе пишет, что зарегистрирован для некоммерческого использования (после перезагрузки винды), но наверное продолжает считать пробный период, когда не находит ключевой файл.
ИМХО, виновато отсутствие в сабже поддержки UAC, или же tm.exe xReg нужно делать из командной строки, запущенной от имени админа с запросом UAC (при обычном запуске нет никаких предупреждений), без запроса UAC нифига не запишется в Program files.
Но это все нужно проверить и исправить данные в Справке и в Сети.

Добавлено:
Ключевой файл создается, если tm.exe запускать из командной строки, запущенной от имени админа. Нужно добавить это в Справку. А если tm.exe не от админа выполняется, то выдавать предупреждение.
Автор: VoidVolker
Дата сообщения: 09.05.2013 18:46
Ну это само-собой, ибо при включенном UAC винда просто так не даст доступ к системному каталогу.
Автор: lucky_Luk
Дата сообщения: 09.05.2013 18:50
VoidVolker


Цитата:
Ну это само-собой, ибо при включенном UAC винда просто так не даст доступ к системному каталогу.

Но если не каждый день софт ставишь, то об этом забываешь. Обычно софт в такой ситуации ругается, а сабж "проходит регистрацию", а через месяцок начинает дурить, хотя везде написано, что зарегистрирован.
Я бы исправил в Справке инфу, в разделе про регистрацию для бывшего СССР - в такой ситуации своего файла-ключа нет и юзер может просто не знать, что этот файл должен создаваться.

Добавлено:
А вообще-то сабж должен как-то уведомлять юзера, что произошел косяк. Файл ключа не создался, это нарушение процедуры, но сабж молчит.
Автор: sundraw
Дата сообщения: 12.05.2013 08:29
Здравствуйте! Нужно запускать задачу каждые 50 мин. Ставлю время в задаче
Time: */50 * * * * *
А она почему-то работает как на 50-й минуте после каждого часа:
50 * * * * *
Нужно, чтоб отсчёт времени шёл с момента запуска Windows, а не по компьютерному времени. Что я делаю не так?
Автор: lucky_Luk
Дата сообщения: 12.05.2013 08:45
sundraw

Цитата:
Нужно, чтоб отсчёт времени шёл с момента запуска Windows, а не по компьютерному времени. Что я делаю не так?

Ставишь слово, которое делает отсчет по компьютерному времени.
А тебе нужно сделать цикл с паузой 50 минут. Выбери из Справки любой цикл и пользуйся. Есть такие циклы:
DO...LOOP, BEGIN...UNTIL и WHILE...REPEAT.
Автор: sundraw
Дата сообщения: 12.05.2013 08:50
lucky_Luk, спасибо, сейчас попробую.
P.S. Порядок, работает. Подошла команда BEGIN-UNTIL. Время сделал через паузу:

Код: Active
NoLog
Time: START-TIME
Action:
BEGIN
StartIn: "C:\WINDOWS"
ShowNormal NormalPriority
START-APP: C:\WINDOWS\NOTEPAD.EXE
PAUSE: 00:50
PROC-EXIST: "bubu.exe"
UNTIL
Автор: gryu
Дата сообщения: 14.05.2013 13:35
Коллеги.
Извините если я туплю, но поиском не нашёл в топе.
В мануале тоже.
Как запустить задачу по запуску скринсейвера с условием что при выходе из скринсейвера задача должна прерываться.
Спасибо.
Автор: lucky_Luk
Дата сообщения: 14.05.2013 13:50
gryu

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

После запуска скринсейвера поставь цикл с небольшой паузой внутри - на проверку наличия процесса скринсейвера. А как только процесс исчезнет и цикл прервется, т.е. после цикла, поставь в задаче слово EXIT.
Автор: gryu
Дата сообщения: 14.05.2013 13:52
lucky_Luk
можно пример?
я в скриптах плаваю. Совсем. Как топор.

Добавлено:
P.S.
В шапке ссылка на статью "* » Cтатья Валерия Кондакова про возможности nnCron" на самом деле ведёт на статью "Утилита Apple позволит создавать приложения, не умея программировать"

Автор: lucky_Luk
Дата сообщения: 14.05.2013 15:23
gryu


Цитата:
я в скриптах плаваю. Совсем. Как топор.

А он у тебя как запускается, тупо или цивильно - с учетом времени простоя?

Ну что-то типа


Код:
#( Task1
Time: START-TIME
Rule: IDLE: 60
Action:
START-APP: C:\windows\screensaver.scr
BEGIN
PAUSE: 5000
PROC-EXIST: screensaver.scr 0 =
UNTIL
EXIT
)#
Автор: gryu
Дата сообщения: 14.05.2013 18:41
lucky_Luk
Потому что в виндовс 7 изменили понятие "при бездействии системы".
В описании сказано что "бездействие" считается если в течении 15 минут (таймер проверки) болеее скольких то там процентов времени нагрузка поцессора "в бездействии" более 90-то с чем то процентов.
А у меня при бездействии процесс "в бездействии" скачет только 80-90.
Поэтому даже при срабатывании скринсейвера задача не запускается. Винда не считает тригеры сработавшими.

Цитата:
Эта задача должна стартовать при загрузке системы, запускать скринсейвер после 60 секунд отсутствия активности пользователя, раз в 5 секунд проверять наличие процесса скринсейвера, а когда процесс исчезнет (после выхода из скринсейвера), то задача завершится
Я имел ввиду немного другое.
Проверять наличие скринсейвера (как я понял по SCREENSAVER-ON?) и работать от этого, а не самому запускать.
Автор: lucky_Luk
Дата сообщения: 14.05.2013 22:14
gryu


Цитата:
Проверять наличие скринсейвера (как я понял по SCREENSAVER-ON?) и работать от этого, а не самому запускать.


Тебе нужна задача, которая начинает выполнять полезную нагрузку после запуска скринсейвера (по завершении его работы)?

Тогда так:


Код:
#( Task1
WatchProcStop: screensaver.scr / вписать название процесса скринсейвера
Action:
/ сюда пишешь то, что нужно сделать по завершении работы скринсейвера
)#
Автор: gryu
Дата сообщения: 14.05.2013 22:40
lucky_Luk
[more=Условия простоя(цитата из хэлпа)]Условия простоя
Можно выбрать условие, позволяющее запуск задания только в том случае, если на момент активации триггера компьютер находится в состоянии простоя в течение указанного времени. При настройке этого условия также необходимо задать время ожидания (после активации триггера задания), по истечению которого компьютер будет возвращаться в состояние простоя.

Служба планировщика заданий проверяет, не находится ли компьютер в состоянии простоя, каждые 15 минут. Состоянием простоя считается состояние компьютера, при котором запущена заставка. Если заставка не запускается, считается, что компьютер находится в состоянии простоя при 0% использования процессора и 0% активности диска в течение 90% из последних 15 минут при отсутствии ввода команд с помощью клавиатуры или мыши. Если служба планировщика заданий обнаруживает, что компьютер находится в состоянии простоя, служба начинает ожидать ввода команды пользователем, чтобы отметить конец состояния простоя.

Если задание запускается только в том случае, если компьютер находится в состоянии простоя в течение 30 минут, и задание в течение 10 минут ожидает, пока компьютер перейдет в состоянии простоя, то задание запуститься через 5 минут только в том случае, если на момент активации триггера компьютер находился в состоянии простоя в течение 25 минут. Задание не будет запущено, если компьютер переходит в состояние простоя через 5 минут после активации триггера.

Если для задания выбрано условие Останавливать при выходе компьютера из простоя, и задание запускается, пока компьютер находится в состоянии простоя, то при выходе компьютера из состояния простоя выполнение задания прекращается. Задание, выполнение которого остановлено этим условием, будет запущено повторно при следующем переходе компьютера в состояние простоя, если для этого задания выбрано условие Перезапускать при возобновлении простоя.[/more] Однако выделенное шрифтом повидмимому имеет больший приоритет, т.к. по запуску скринсейвера задача не запускается.


Цитата:
Подходящее для этого дела слово IDLE
Да. Просто под рукой небыло англоязычной винды.


Добавлено:

Цитата:
вписать название процесса скринсейвера
не подходит. Скринсейверы могут быть разными, а пара человек вообще любят скринсейверы сами менять по 100 раз на дню. То у неё аквариум, то кошка..


Добавлено:

Цитата:
нужно запускать полезную нагрузку при старте скринсейвера,
Да. Когда <имярек> пошёл попить чайку или потрещать с подружжжжжжками!
Автор: lucky_Luk
Дата сообщения: 15.05.2013 09:27
gryu


Цитата:
не подходит. Скринсейверы могут быть разными, а пара человек вообще любят скринсейверы сами менять по 100 раз на дню. То у неё аквариум, то кошка..

Проблема в том, что сабж не различает ситуацию "скринсейвер завершил свою работу" и "скринсейвер вообще еще не запускался". Т.е. все проверки типа SCREENSAVER-ON? будут срабатывать сразу после загрузки системы, ИМХО и вообще не факт, что это слово воспримет любую фиговину, поставленную в качестве скринсейвера, скринсейверы бывают очень заковыристыми.
Автор: VoidVolker
Дата сообщения: 22.05.2013 09:13

Цитата:
все проверки типа SCREENSAVER-ON? будут срабатывать сразу после загрузки системы, ИМХО и вообще не факт, что это слово воспримет любую фиговину, поставленную в качестве скринсейвера, скринсейверы бывают очень заковыристыми.

С чего это вдруг? В мануле же написано русским языком:

Цитата:
Возвращает флаг TRUE (-1), если запущен хранитель экрана.


Код: #( Задача_100822052013
\ NoActive
SingleInstance
Rule: SCREENSAVER-ON?
Action:
BEGIN SCREENSAVER-ON? WHILE
<какой-то код>
REPEAT
)#
Автор: lucky_Luk
Дата сообщения: 22.05.2013 09:40
VoidVolker


Цитата:
EXIT в конце задачи не имеет никакого смысла.

А где в код затесался EXIT в конце задачи? Из своего примера вроде давно вычистил его.

Добавлено:
VoidVolker
А что конкретно сабж считает хранителем экрана?

Добавлено:

Цитата:
BEGIN SCREENSAVER-ON? WHILE
<какой-то код>
REPEAT

А вот это нафига? Оно же будет крутить "какой-то код" несколько раз в цикле, пока работает скринсейвер. А вопрощающему нужно выполнить "какой-то код" после завершения работы скринсейвера, а не во время его работы. И один раз, а не двадцать раз повторить, пока скринсейвер работает.

Добавлено:
gryu
У тебя что-то получилось, как работает, проблем нет?
Автор: VoidVolker
Дата сообщения: 22.05.2013 11:52

Цитата:
А где в код затесался EXIT в конце задачи? Из своего примера вроде давно вычистил его.

http://forum.ru-board.com/topic.cgi?forum=5&topic=26082&start=1300#5

Цитата:
А вот это нафига? Оно же будет крутить "какой-то код" несколько раз в цикле, пока работает скринсейвер..

Приведенный выше пример на 100% соответствует вот этому вопросу:

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

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

Цитата:
А вопрощающему нужно выполнить "какой-то код" после завершения работы скринсейвера, а не во время его работы. И один раз, а не двадцать раз повторить, пока скринсейвер работает.

Не видел я что-то подобных вопросов на данной странице. В любом случае, в этом случае в цикл будет достаточно поставить паузи, а "какой-то код" поставить после цикла, когда заставка будет остановлена.

Цитата:
А что конкретно сабж считает хранителем экрана?

Ннкрон? Он ничего не считает. Он просто вызывает WINAPI, а оно уже говорит, запущена ли сейчас заставка или нет.
Автор: lucky_Luk
Дата сообщения: 22.05.2013 13:32
VoidVolker
А, это в самом начале было, слово EXIT поставлено было под вот такой запрос


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

Автор: VoidVolker
Дата сообщения: 22.05.2013 16:59
Да это-то понятно. Просто само по себе оно данную задачу не решит. Имеет смысл только в контексте:

Код: SCREENSAVER-ON? 0= IF EXIT THEN
<код>
Автор: gryu
Дата сообщения: 22.05.2013 19:52
lucky_Luk
VoidVolker
Простите ребята. Я в командировке и вернусь ХЗ когда. Пока ничего не пробовал.
Автор: VoidVolker
Дата сообщения: 22.05.2013 22:20

Цитата:
Простите ребята. Я в командировке и вернусь ХЗ когда. Пока ничего не пробовал.

Да ничего страшного. Мы тут все равно бездельничаем xD
Автор: lucky_Luk
Дата сообщения: 01.07.2013 09:36
Как сделать таймер?
Автор: VoidVolker
Дата сообщения: 01.07.2013 12:40
Какой еще таймер? Типа секундомера?
Автор: lucky_Luk
Дата сообщения: 01.07.2013 13:57
VoidVolker


Цитата:
Какой еще таймер? Типа секундомера?

Таймер делает обратный отсчет от заданного количества минут до нуля.
Автор: VoidVolker
Дата сообщения: 01.07.2013 15:02
Что такое таймер я знаю. Какова задача в целом-то? Чего надо сделать-то? Окошко с отсчетом? Подождать в задаче?
Автор: earcher
Дата сообщения: 02.07.2013 07:26
скажите, а можно как-нибудь зашифровать nncron.tab?
Автор: unreal666
Дата сообщения: 02.07.2013 08:17
earcher
а кто его расшифровывать будет?
Автор: lucky_Luk
Дата сообщения: 02.07.2013 09:16
VoidVolker


Цитата:
Что такое таймер я знаю. Какова задача в целом-то? Чего надо сделать-то? Окошко с отсчетом? Подождать в задаче?

Окошка сабж делать не умеет. Надо чтобы подавало сигнал через заданный интервал времени. Ладно, обойдусь каким-нибудь циклом с паузой.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354

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


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