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

» nnCron

Автор: brRamires
Дата сообщения: 28.02.2016 19:53
VoidVolker, в чём тогда разница с QUIT? Если QUIT без ошибок завершает задачу внутри конструкций FOR-*, тогда ведь можно его и использовать без создания флаговой переменной.
Автор: VoidVolker
Дата сообщения: 29.02.2016 07:21
http://www.nncron.ru/help/RU/working/tools_console.htm#RemoteConsole

Цитата:
Управлять отображением консоли можно и программно. Слова:

CONSOLE - создает консольное окошко
START-QUIT - запускает слово QUIT в отдельном thread'e
QUIT - если консоль уже открыта

Вот определение слова QUIT:

Код: : QUIT ( -- ) ( R: i*x ) \ CORE 94
\ Сбросить стек возвратов, записать ноль в SOURCE-ID.
\ Установить стандартный входной поток и состояние интерпретации.
\ Не выводить сообщений. Повторять следующее:
\ - Принять строку из входного потока во входной буфер, обнулить >IN
\ и интепретировать.
\ - Вывести зависящее от реализации системное приглашение, если
\ система находится в состоянии интерпретации, все процессы завершены,
\ и нет неоднозначных ситуаций.

BEGIN
CONSOLE-HANDLES
0 TO SOURCE-ID
[COMPILE] [
['] MAIN1 CATCH
['] ERROR CATCH DROP
( S0 @ SP! R0 @ RP! \ стеки не сбрасываем, т.к. это за нас делает CATCH
AGAIN
;
Автор: brRamires
Дата сообщения: 29.02.2016 17:13
VoidVolker, мне знаний не хватает, чтобы это понять). Ладно, может потом разберусь...
Автор: VoidVolker
Дата сообщения: 29.02.2016 17:40
brRamires
QUIT - это не выход из задачи. Для выхода из задачи/слова есть EXIT - его и нужно применять. Для выхода из LOOP циклов - LEAVE или UNLOOP для очистки временных данных цикла.
Автор: brRamires
Дата сообщения: 01.03.2016 18:54
Странно, что для слова WatchQueryShutdown есть INTERCEPT-SHUTDOWN и CONTINUE-SHUTDOWN, а для WatchQuerySuspend аналогов нет. Тогда не понятно его отличие от WatchSuspend.
Автор: VoidVolker
Дата сообщения: 02.03.2016 00:04

Цитата:
WatchQuerySuspend аналогов нет. Тогда не понятно его отличие от WatchSuspend.

http://www.nncron.ru/help/RU/commands/watch.htm#WatchQuerySuspend
http://www.nncron.ru/help/RU/commands/watch.htm#WatchShutdown
Опрос перед событием и сам факт события.
Автор: brRamires
Дата сообщения: 02.03.2016 10:25
А прервать как-нибудь можно погружение в сон или гибернацию?
Автор: VoidVolker
Дата сообщения: 02.03.2016 17:39
А зачем их прерывать? Какова задача в целом?
Автор: brRamires
Дата сообщения: 03.03.2016 17:34
Хотел перед гибернацией вывести сообщение, сколько времени компьютер был включён, но его невозможно прочитать: экран сразу отключается. Ещё есть идея - перед гибернацией автоматически закрывать браузер, чтобы на диск меньше писать, а после выхода - вновь запускать. Видимо Windows не поддерживает прерывание режимов Suspend, иначе это было бы и в nnCron...
Автор: VoidVolker
Дата сообщения: 03.03.2016 22:28

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

А смысл? Ускорить?

Цитата:
Видимо Windows не поддерживает прерывание режимов Suspend, иначе это было бы и в nnCron...

Какая именно версия ОС?

Автор: brRamires
Дата сообщения: 04.03.2016 11:53

Цитата:
А смысл? Ускорить?

Чтобы диск не гонять зазря. У меня в Firefox много вкладок + после просмотра YouTube роликов потребляется куча памяти. Не хочется на диск лишнее скидывать.

Цитата:
Какая именно версия ОС?

8.1 x32.
Автор: VoidVolker
Дата сообщения: 04.03.2016 12:59

Цитата:
Чтобы диск не гонять зазря. У меня в Firefox много вкладок + после просмотра YouTube роликов потребляется куча памяти. Не хочется на диск лишнее скидывать.

Эмм... На фоне постоянной работы с диском ОС и других приложений - это капля в море. Так что пользы от этого никакой.
Автор: sundraw
Дата сообщения: 04.03.2016 15:08
Всем доброго здоровья!
Есть два варианта одной задачи:
Первый

Код:
NoLog
Time: */5 * * * * *
Action:
WIN-CLICK: "*Explorer*" "Кнопка"
Автор: brRamires
Дата сообщения: 04.03.2016 17:03
VoidVolker

Цитата:
Эмм... На фоне постоянной работы с диском ОС и других приложений - это капля в море. Так что пользы от этого никакой.

Дело даже не в конкретной задаче, а в том, что в принципе нет такой возможности... Ну да ладно, лично мне это не столь важно, просто как идея.

sundraw
Может, клик посылается не тому окну, т.к. паттерн "*Explorer*" слишком общий? И что за ошибки возникают?
Автор: sundraw
Дата сообщения: 04.03.2016 17:06
brRamires

Цитата:
sundraw
Может, клик посылается не тому окну, т.к. паттерн "*Explorer*" слишком общий?

Там окно единственное, паттерн "*Explorer*" - это для примера, название у него другое.
Окно ошибки такое

Нажимаешь на ОК или ОТМЕНА, nncron перезапускается и продолжает работать.
Автор: brRamires
Дата сообщения: 04.03.2016 17:24
sundraw
Вообще, команда вида WIN-CLICK: "*Explorer*" "Кнопка" не должна вызывать падение nnCron. Нужно больше сведений:
- версия nnCron и Windows
- nnCron запущен как приложение или сервис?
- можно весь текст задачи?
Автор: sundraw
Дата сообщения: 04.03.2016 17:41
brRamires

Цитата:
sundraw
Вообще, команда вида WIN-CLICK: "*Explorer*" "Кнопка" не должна вызывать падение nnCron. Нужно больше сведений:
- версия nnCron и Windows
- nnCron запущен как приложение или сервис?
- можно весь текст задачи?

Версия: nncron v1.93b10 Build 1141
WinXP SP3
Запущен как приложение, непотопляемый режим.
Весь текст задачи такой же:

Код:
#( Клик5мин
NoLog
Time: */5 * * * * *
Action:
WIN-CLICK: "*Explorer*" "Кнопка"
)#
Автор: brRamires
Дата сообщения: 04.03.2016 17:50
sundraw, попробуйте http://www.nncron.ru/download/nncron193b15.exe

Автор: sundraw
Дата сообщения: 04.03.2016 17:58
brRamires
Спасибо за совет. Выбирал версию по скорости выполнения задач. Приглянулась, которая стоит, nncron v1.93b10 Build 1141. Попробую с новой nnCron 1.93b13 Build 1172 18.03.2013 Может, действительно, проблема исчезнет.
За ссылку тоже спасибо
Автор: VoidVolker
Дата сообщения: 04.03.2016 18:44

Цитата:
Дело даже не в конкретной задаче, а в том, что в принципе нет такой возможности... Ну да ладно, лично мне это не столь важно, просто как идея.

Ну вообще-то это не совсем так. В десятке и в 2016 сервер перехват экрана загрузки ОС (логон скрин), экрана блокировки, перезагрузки, сна, выхода из системы, выключения ПК перехватывается очень простым приложением (запускает другое приложение с передачей командной строки), одним ключом реестра и копированием одного файла. В восьмерке это не работает (нужно боле глубокое исследование). В семерке пока точно знаю как перехватывать логон, но в восьмерке то же самое тоже не работает, остальное не исследовал.
Автор: idlenlazy
Дата сообщения: 05.03.2016 01:40
brRamires
Как вариант создать задачу: сообщение, закрытие браузера, гибернация. Повесить на хоткей.
Автор: VoidVolker
Дата сообщения: 05.03.2016 07:53

Цитата:
Спасибо за совет. Выбирал версию по скорости выполнения задач.

Эмм... Скорость выполнения задач от версии ннкрона не зависит.
Автор: sundraw
Дата сообщения: 05.03.2016 07:57
VoidVolker
Я не совсем правильно выразился. Не скорость выполнения задач, а скорость загрузки самого nncron.
Поставил nnCron 1.93b15, при старте системы в одинаковых условиях запускается в 2-3 раза дольше по сравнению с nncron v1.93b10 Build 1141. Учитывая, что в процессе работы он периодически перезагружается, потеря совокупного времени будет весьма ощутимой. Поэтому остался на более скоростной v1.93b10. Тогда скрипт придётся оставить с кликом по координатам.
Автор: VoidVolker
Дата сообщения: 05.03.2016 11:04

Цитата:
Поставил nnCron 1.93b15, при старте системы в одинаковых условиях запускается в 2-3 раза дольше по сравнению с nncron v1.93b10 Build 1141. Учитывая, что в процессе работы он периодически перезагружается, потеря совокупного времени будет весьма ощутимой. Поэтому остался на  более скоростной  v1.93b10. Тогда скрипт придётся оставить с кликом по координатам.

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

В начале кронтаба:

Код: <%
GetTickCount VALUE LoadStart
%>
Автор: brRamires
Дата сообщения: 05.03.2016 13:05

Цитата:
В восьмерке это не работает (нужно боле глубокое исследование). В семерке пока точно знаю как перехватывать логон, но в восьмерке то же самое тоже не работает, остальное не исследовал.

Поэтому нет смысла вводить в программу функции, которые не будут гарантированно работать.

Цитата:
Как вариант создать задачу: сообщение, закрытие браузера, гибернация. Повесить на хоткей.

Пожалуй, так и сделаю.

Цитата:
Поставил nnCron 1.93b15, при старте системы в одинаковых условиях запускается в 2-3 раза дольше по сравнению с nncron v1.93b10 Build 1141.

Может это от ОС зависит? Только что на Win 8.1 x32 провёл эксперимент: запускал beta 10 и beta 15 как приложения с одинаковой конфигурацией: иконки в трее появляются за ~2.5 сек в обоих случаях.
Автор: sundraw
Дата сообщения: 05.03.2016 13:28

Цитата:
Цитата:
Поставил nnCron 1.93b15, при старте системы в одинаковых условиях запускается в 2-3 раза дольше по сравнению с nncron v1.93b10 Build 1141.

Может это от ОС зависит? Только что на Win 8.1 x32 провёл эксперимент: запускал beta 10 и beta 15 как приложения с одинаковой конфигурацией: иконки в трее появляются за ~2.5 сек в обоих случаях.

Тогда, вероятнее всего, nncron v1.93b10 Build 1141 берёт меньше ресурса на запуск, чем nnCron 1.93b15. При больших ресурсах железа это незаметно. У меня стоят WinXP на ФС FAT 16 в виртуалках, оперативной памяти 96 мб на машину. При запуске после появления рабочего стола nncron v1.93b10 Build 1141 срабатывает через 5-10 сек, nnCron 1.93b15 через 15-25 сек. Можно конечно увеличить оперативку, но не выгодно. Поэтому в моём случае удобнее nncron v1.93b10.
Выставил в задаче клики по координатам

Код:
NoLog
Time: */5 * * * * *
Rule: WIN-EXIST: "*Explorer*"
Action:
MOUSE-MOVE: 605 45
MOUSE-LBCLK
Автор: VoidVolker
Дата сообщения: 05.03.2016 13:31

Цитата:
Поэтому нет смысла вводить в программу функции, которые не будут гарантированно работать.

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

Добавлено:

Цитата:
Тогда, вероятнее всего, nncron v1.93b10 Build 1141 берёт меньше ресурса на запуск, чем nnCron 1.93b15.

В этих бетах разница минимальна :

Цитата:

beta 15 (2016-02-08)
* SEARCH bug fixed (65535 bytes text length limitation).

beta 14 (2016-02-03)
* SHEADER, SCREATE, SET bug fixed.

beta 13 (2013-03-16)
+ if nncron installation directory contains file "portable", this directory is working directory on any mode of nnCron execution;
+ it's not need to specify -ns at startup nncron "as application", and -dir, if you expect the default directory.

beta 12 (2013-03-13)
* bug fixes two concurrent reminders;
+ PLACE0;
* DAYS bug fixed;
+ JDAYS ( y m d -- julian_days );
* install as application bug fixed;
* some bug fixed.

Можно ли протестировать со всеми бетами и сделать это более точно? Код выше приведен.
Автор: sundraw
Дата сообщения: 05.03.2016 13:44
VoidVolker

Цитата:
Можно ли протестировать со всеми бетами и сделать это более точно? Код выше приведен.

Попробую.
Автор: sundraw
Дата сообщения: 05.03.2016 17:27
VoidVolker

Цитата:
В начале кронтаба:

Код:
<%
GetTickCount VALUE LoadStart
%>

В конце кронтаба, если один, или в конце последнего подключенного, если кронтабов больше одного:

Код:
<%
GetTickCount LoadStart - .( Crontabs load time: ) . CR
%>


Куда бы ни поставил коды в nncron.tab, ннкрон выдаёт ошибку синтаксиса. Кронтаб один. В конце понятно, второй код поставил после последней задачи. А где ставить первый? В самом начале перед
#CRONTAB FILE
не идёт.
Перед первой задачей
#( purge-cron-log
также выдаёт ошибку.
Автор: VoidVolker
Дата сообщения: 05.03.2016 19:13
И какую ошибку выдает? Код был вставлен между словами <% и %>?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354

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


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