Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87

Открыть новую тему     Написать ответ в эту тему

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nnCron
 
nnCron - это компактный, но мощный планировщик и менеджер автоматизации с собственным скриптовым языком, основанным на синтаксисе языка программирования Форт. Помимо традиционной для планировщика способности запускать в указанное время программы, "напоминалки" и открывать документы ..
 
nnCron способен отслеживать файлы, флаги, окна, процессы, движения мыши, время простоя компьютера, клавиатурные шорткаты, выход в онлайн/оффлайн, появление диска в драйве, наличие хоста в сети (пинг), изменение удаленного ресурса по http-протоколу, количество свободного места на диске, загруженность оперативной памяти и многое другое...
 
nnCron понимает cron-формат (Unix) и управляется с помощью текстовых кронтаб-файлов. Для тех, кто любит работать с GUI есть графическая оболочка из которой можно удалять/добавлять/редактировать и запускать задачи, устанавливать напоминалки, менять настройки программы.
 
nnCron позволяет использовать в задачах VBScript/JScript, регулярные выражения и расширяется за счет плагинов. Он может быть запущен в качестве службы (сервиса) или как обычное приложение. Обладает средствами удаленного администрирования. Подробнее прочитать о возможностях nnCron вы можете в online-документации.
 
nnCron бесплатен для граждан стран бывшего СССР при условии частного и некоммерческого использования.


история изменений - http://www.nncron.ru/forums/viewforum.php?f=11
форум - http://www.nncron.ru/forums/
 
архив конференции поддержки: » fido7.ru.nncron
 
скачать: http://www.nncron.ru/download_ru.shtml - программу, документацию, плагины, скрипты
 
последняя версия:
 
v.1.91 (build 1083) - последний релиз от 21 марта 2006 (+ основные плагины и документация на английском языке)
v.1.93 beta 15 - последняя бета от 15.02.2016
history
 
документация:
 
help_ru.zip  (обновляется регулярно) документация nnCron (на русском языке)
faq_ru.zip nnCron FAQ (на русском языке)
spf_help.zip (130k  20 Nov 2002)  описание основных слов SP-Forth (на русском языке)
sf.chm (1.5M  03 Feb 2003)  книга Leo Brodie "Начальный курс программирования на языке Форт" (на русском языке)
 
полезные ссылки:
* » nnBackup - крошечная (250k) консольная утилита, предназначенная для резервного копирования файлов, синхронизации содержимого каталогов, создания и обработки файл-листов.
* » Cтатья Валерия Кондакова про возможности nnCron
* » Канал "nnCron releases" для » WatzNew by 8AleX8
* » Файл расцветки синтаксиса исходников языка Форт и кронтабов nnCron для плагина Colorer (Far Manager)
* » Редактор мелодий для beeper'a под nnCron
Если не работает новая, правильно написанная задача, то попробуйте добавить в опции задачи слово AsLoggedUser (галочка в свойствах новой задачи "Как пользователь, выполнивший login") и, возможно, LoadProfile (галочка "Загрузить профиль").
 

Полезные самодельные задачи для сабжа на Ru-Board'е
 
Если хочется в имени задачи поставить пробел, используйте комбинацию Alt+0160, такой пробел принимается.
 
Полезные самодельные задачи для сабжа на оффоруме
 
Актуально!!! Запуск и работа nnCron в Win7 (оффорум)
 
nnCron на GitHub
 
 
предыдущее обсуждение - тут

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 15:38 29-01-2008 | Исправлено: uzeerpc, 10:02 03-11-2017
brRamires

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как определить, что загрузка процессора меньше определённой величины?

В общем, покопался в справке. Пока более оптимальный получается такой вариант:

Код:
#( MyDefrag \ быстрая дефрагментация файлов
NoActive
RunMissed: 1
Time: 1 18 * * 1,3,5 *
SingleInstance
Action:
  BALLOON: "Внимание" "Выполняется фоновая дефрагментация файлов"
  <CronScript>  
  : main
    StartIn: "D:\=PORTABLE=\System\MyDefragPortable\"  
    ShowNormal   IdlePriority
    START-APPW: D:\=PORTABLE=\System\MyDefragPortable\MyDefrag.exe -r D:\=PORTABLE=\System\MyDefragPortable\Scripts\AutomaticQuick.MyD -v
  ;  
  </SCRIPT>
  BALLOON: "Внимание" "Фоновая дефрагментация файлов выполнена"
)#
 
#( CCleaner_and_MyDefrag \ очистка системы и запуск задачи быстрой дефрагментации
NoActive
RunMissed: 1
AsLoggedUser
LoadProfile
Time: 0 18 * * 1,3,5 *
SingleInstance
Action:
  BALLOON: "Внимание" "Выполняются очистка системы от мусорных файлов"
  <CronScript>  
  : main
    StartIn: "D:\=PORTABLE=\System\CCleanerPortable"  
    ShowNormal   IdlePriority
    START-APPW: D:\=PORTABLE=\System\CCleanerPortable\CCleaner.exe /AUTO
  ;  
  </SCRIPT>
  MyDefrag LAUNCH
)#
 
#( auto_time_counter \ каждые 10 минут увеличивает счётчик time_counter в реестре на 1
Time: */10 * * * * *
SingleInstance
regVAR time_counter
Action:
  time_counter S>NUM
  1+
  N>S TO time_counter
)#
 
#( auto_idle \ запускается при простое компьютера в течение 150 секунд
SingleInstance
regVAR time_counter
Rule: IDLE: 150
Action:
  time_counter S>NUM
  120 >
  IF \ если счётчик time_counter в реестре больше 120 (20 часов чистого рабочего времени системы)
    20000 (CPU-USAGE)
    60 < \ если нагрузка на процесоор в течение 20 секунд меньше 60%
    IF
      0
      N>S TO time_counter
      CCleaner_and_MyDefrag LAUNCH \ запуск задачи очистки и дефрагментации
    THEN
  THEN  
)#  
 

Правда BALLOON в 7 не выводится. Из CronScript не выводится и в XP.
 
Вопрос про мониторинг нагрузки на диск по-прежнему в силе. Есть Винде такая штука - счётчики производительности. Как бы получить к ним доступ из nnCron...

Всего записей: 528 | Зарегистр. 28-09-2008 | Отправлено: 23:04 27-11-2011 | Исправлено: brRamires, 23:07 27-11-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brRamires

Цитата:
Правда BALLOON в 7 не выводится. Из CronScript не выводится и в XP.

БАЛУН, в том виде как он описан в хелпе, привязан к иконке крона в трее,
у сервиса в вин7 иконки нет, от сюда и вывод...
(с ХР примерно похожая ситуация для CronScript)
чуть позже добавлю, как можно на свою иконку повесить свой BALLOON
 
Добавлено:

Код:
#( test-start-balloon
NoLog
RunOnce
NoDel
AsLoggedUser
LoadProfile
SingleInstance
  Action:  
  <CronScript>  
4 VALUE teaMinutes
0 VALUE teaRest
0 VALUE id
INCLUDE "plugins\win2tray.spf"
  : main  
    S" " 32513 0 LoadIconA  ADD-TI TO id
    teaMinutes 0
    DO  
        I 2+ 1 DO 50 I * 5500 BEEP LOOP  
        teaMinutes I - TO teaRest
        S" ТАЙМЕР. Осталось %teaRest% минут." EVAL-SUBST id ->CLASS TrayIcon ModifyText
    S" Таймер" S" скоро время истечет. Осталось %teaRest% минут." EVAL-SUBST  16 30000 id ->CLASS TrayIcon Balloon
60000 PAUSE
    S" " S" " 16 30000 id ->CLASS TrayIcon Balloon
    LOOP
 
    1000
    2 0 DO  10 1 DO 10 11 I - * + 100 OVER BEEP LOOP
            10 1 DO 10 I * - 100 OVER BEEP LOOP LOOP DROP
 
S" Таймер! Время истекло." 32515 0 LoadIconA     id MODIFY-TI
 
    S" Таймер!!" S" Время истекло." 16 30000 id ->CLASS TrayIcon Balloon
 
100000 PAUSE
    id DEL-TI  
  ;  
  </SCRIPT>  
  )#
 
ну это, так сказать, очень полный пример,
очень многое можно убрать из него

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 14:05 28-11-2011 | Исправлено: AlikasS, 02:46 30-11-2011
brRamires

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
#( balloon1
NoActive
AsLoggedUser
LoadProfile
Action:
  <CronScript>  
  0 VALUE id
  INCLUDE "plugins\win2tray.spf"
  : main
    32516 0 LoadIconA  ADD-TI TO id
    S" Внимание" S" Выполняется очистка системы от мусорных файлов..." 16 30000 id ->CLASS TrayIcon Balloon
  ;  
  </SCRIPT>
)#

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

Код:
WatchHotKey: "$+{q}"

- определение бездействия пользователя

Код:
Rule: IDLE: 150

 
Ещё, по непонятным пока причинам периодически появляется окошко:

 
AlikasS, есть ли способ запуска приложений с системными правами (не администраторскими)?

Всего записей: 528 | Зарегистр. 28-09-2008 | Отправлено: 22:32 30-11-2011 | Исправлено: brRamires, 22:36 30-11-2011
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
есть ли способ запуска приложений с системными правами (не администраторскими)?

В 7-ке кажется всего 2 варианта работы приложения с правами системы - служба и запуск из планировщика.

----------
ASUS M4A77TD / Phenom II X6 1055T / RAM 12Gib / 6 HDD = 6Tib / Radeon RX 560 2Gib / Win 7 x64 // POB, PVD
* Не называть меня на Вы, только на ты.

Всего записей: 6569 | Зарегистр. 14-02-2005 | Отправлено: 00:21 01-12-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brRamires

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

ты забыл удалить иконку, за нее отвечает строка кода

Код:
id DEL-TI  

Цитата:
Ещё, по непонятным пока причинам периодически появляется окошко:  

посмотрел бы что пишет служба
я кстати подправлял свой код в строке

Код:
S" " 32513 0 LoadIconA  ADD-TI TO id  
скорее всего это из за этого, была ошибка стека

Цитата:
есть ли способ запуска приложений с системными правами (не администраторскими)?

сервис без извращений в виде  
Код:
AsLoggedUser Action: <CronScript> ...  </SCRIPT>  
как раз и будет запускать процессы с системными правами

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 03:31 01-12-2011
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlikasS

Цитата:
сервис без извращений в виде...

Так неинтересно. Лучше скажи, как из nncron'а с правами админа запустить другую прогу с правами системы.
 
ЗЫ.
Хотя как вариант самим же nncron'ом с правами админа или создавать временную задачу в планировщике и запускать ее или как-то временно пихать прогу в службы и запускать ее оттуда.


----------
ASUS M4A77TD / Phenom II X6 1055T / RAM 12Gib / 6 HDD = 6Tib / Radeon RX 560 2Gib / Win 7 x64 // POB, PVD
* Не называть меня на Вы, только на ты.

Всего записей: 6569 | Зарегистр. 14-02-2005 | Отправлено: 09:55 01-12-2011 | Исправлено: unreal666, 12:10 01-12-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
у brRamires крон работает сервисом

Цитата:
ЗЫ.  
Хотя как вариант самим же nncron'ом с правами админа или создавать временную задачу в планировщике и запускать ее как-то временно пихать прогу в службы и запускать ее оттуда

это можно

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 10:58 01-12-2011
brRamires

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:

Цитата:
Ещё, по непонятным пока причинам периодически появляется окошко:

S" " 32513 0 LoadIconA  ADD-TI TO id  
скорее всего это из за этого, была ошибка стека

В логе nncron было много сообщений типа:

Код:
16:31:47 1892 система RegisterHotKey ERROR # 1409: hotkey_volume_small
16:31:47 1892 система RegisterHotKey ERROR # 1409: hotkey_volume_max

После удаления данных задач (они отлавливают нажатия клавиш) окошко больше не появляется.
 

Цитата:
как из nncron'а с правами админа запустить другую прогу с правами системы.

Именно этот вариант я и имел в виду. Как я уже писал, MyDefrag не работает под простым пользователем, даже если давать права админа => возможно требуются права системы.
 

Цитата:
как-то временно пихать прогу в службы и запускать ее оттуда

Попробовал такой вариант bat-файла (по аналогии reSetnn.bat из сборки AlikasS):

Код:
sc create MyDefrag type= own type= interact start= auto binPath= "\"%~dp0MyDefrag.exe\" -r "\"%~dp0Scripts"\AutomaticQuick.MyD\" -v *
net start MyDefrag

Сервис устанавливается, программа запускается и начинает работать:

 

Но потом видимо принудительно закрывается системой, т.к. не отвечает на какие-то сообщения.
 
То же самое при запуске через services.msc:

Всего записей: 528 | Зарегистр. 28-09-2008 | Отправлено: 03:42 02-12-2011 | Исправлено: brRamires, 03:44 02-12-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brRamires

Цитата:
S" " 32513 0 LoadIconA  ADD-TI TO id  

если не исправил, исправь, формат именно такой у ADD-TI ( a u hicon -- id )

Цитата:
как из nncron'а с правами админа запустить другую прогу с правами системы.

если запущены два крона на машине (один сервис и его не видно, второй приложение)
то nncron-приложение может nncron-сервису "добавить" нужную задачу
- прямым добавлением в кронтаб сервиса необходимой задачи
       но надо будет править доступ к файлу-кронтабу сервиса
- через удаленную консоль nncron-сервис может принимать команды (в принципе отличный и уже решенный вариант)
#

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 07:16 02-12-2011 | Исправлено: AlikasS, 14:22 02-12-2011
brRamires

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlikasS

Код:
через удаленную консоль nncron-сервис может принимать команды (в принципе отличный и уже решенный вариант)

Можно пример, как это делается?

Всего записей: 528 | Зарегистр. 28-09-2008 | Отправлено: 03:29 05-12-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brRamires

Цитата:
Можно пример, как это делается?

управление кроном-сервисом с помощью крона-приложения
(два независимых процесса)
сначала надо проверить в настройках крона-сервиса возможность принимать команды на удаленную консоль, в  nncron.ini строки

Код:
\ консоль разрешена
RemConsole ON
\ рабочий порт
RemConsolePort: 2003
\ доступ с локальоного адреса открыт
RemAllowed: 127.0.0.1
\ остальные закрыты
RemDisallowed: x.x.x.x

 
Добавлено:
далее работаем с кроном-приложением
в его кронтабе добавляем следующий код

Код:
<%
: FILEREMOTESENDMESS { a1 u1 a2 a3 u3 \ soc rem-ip -- ior } ( S" ip/name" port S" file-name" -- true/false )
SocketsStartup THROW
CreateSocket 0=  
IF    TO soc
    a1 u1 GetHostIP   0=  
    IF
        DUP TO rem-ip  
        a2 soc ConnectSocket 0=  
        IF
            a3 u3 FILE EVAL-SUBST
            soc WriteSocketLine DROP \ Собственно команда для удаленного Крона  
            TRUE
        ELSE  
            FALSE
        THEN  
    ELSE  
        DROP
        FALSE
    THEN  
     1000 PAUSE
     soc CloseSocket DROP
ELSE  
    DROP FALSE
THEN  
;
%>
 
#( переслать_задачу13456
NoActive
Action:
S" 127.0.0.1" 2003 S" c:\temp\REMOTESEND2.SCRIPT" FILEREMOTESENDMESS DROP
)#

 
 
где c:\temp\REMOTESEND2.SCRIPT файл со следующим содержимым
для пересылки крону-сервису (фактически это текст задачи для пересылки)

Цитата:
TASK-ADD 1ask nncron.tab  
RunOnce  
AsLoggedUser
LoadProfile
Action:  
  <CronScript>    
  : main  
MSG: "репорт от сервиса, задача получена"
  ;    
  </SCRIPT>  
.

для пересылки кода, запустить в ручную задачу переслать_задачу13456
 
Добавлено:
есть еще решение для пересылки другому крону отдельных коротких команд (не текста из файла, как в текущем примере)

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 15:13 05-12-2011 | Исправлено: AlikasS, 15:44 05-12-2011
brRamires

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlikasS
Что-то у меня не выходит по этому варианту. Файервол вообще не показывает, что nnCron слушает какой бы то ни было порт, хотя всё по инструкции.

Всего записей: 528 | Зарегистр. 28-09-2008 | Отправлено: 05:58 07-12-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brRamires
Цитата:
Что-то у меня не выходит по этому варианту. Файервол вообще не показывает, что nnCron слушает какой бы то ни было порт, хотя всё по инструкции.

в блокировки файервола не мог попасть?
у тебя запущено два крона, сервис и приложение?
в nncron.ini сервиса

Код:
RemConsole ON  
RemConsolePort: 2003  
RemAllowed: 127.0.0.1  
RemDisallowed: x.x.x.x

в nncron.ini приложения

Код:
RemConsolePort: 2002

т.е. должны быть разные порты, а то конфликт возникает.
если что-то меняешь в nncron.ini службы
надо рестартовать nncron-службу.
ну и смотри логи и nncron.out
 
я проверял на вин7 максимальной не в домене, отработало нормально.
 
Добавлено:
еще на время теста можно заменить

Код:
: FILEREMOTESENDMESS { a1 u1 a2 a3 u3 \ soc rem-ip -- ior } ( S" ip/name" port S" file-name" -- true/false )  
SocketsStartup THROW  
CreateSocket 0=  
IF    TO soc  
    a1 u1 GetHostIP   0=  
    IF  
        DUP TO rem-ip  
        a2 soc ConnectSocket 0=  
        IF  
            a3 u3 FILE EVAL-SUBST  
            soc WriteSocketLine DROP  
S" сообщение отослано" MsgBox
            TRUE  
        ELSE  
S" коннект не установлен" MsgBox
            FALSE  
        THEN  
    ELSE  
S" удаленный хост не найден" MsgBox  
        DROP  
        FALSE  
    THEN  
     1000 PAUSE  
     soc CloseSocket DROP  
ELSE  
S" сокет не создан" MsgBox
    DROP FALSE  
THEN  
;  

и пока использовать это слово

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 08:18 07-12-2011 | Исправлено: AlikasS, 16:30 07-12-2011
brRamires

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlikasS
Разобрался: дело было в том, что задача не выполняется сразу, как я думал, а добавляется к nncron.tab и запускается в начале след. минуты. А если запустить переслать_задачу13456 повторно, до запуска добавленной задачи, то сервис nnCron падает => задача вообще не выполняется.
Т.е. перед добавлением задачи нужно как-то определить, есть ли задача с таким же именем в nncron.tab сервиса, или нет, и если есть, то не добавлять.

Цитата:
есть еще решение для пересылки другому крону отдельных коротких команд (не текста из файла, как в текущем примере)

Покажи пример. Можно ли отправить команду LAUNCH?

Всего записей: 528 | Зарегистр. 28-09-2008 | Отправлено: 07:51 08-12-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brRamires

Цитата:
Покажи пример. Можно ли отправить команду LAUNCH?

 
управление кроном-сервисом с помощью крона-приложения, ч.2

работаем все так же с кроном-приложением
 

Код:
<%
: REMOTESENDMESS { a1 u1 a2 a3 u3 \ soc rem-ip -- ior }( S" ip/name" port S" message" -- true/false )
SocketsStartup THROW
CreateSocket
0=  
IF  
    TO soc  
    a1 u1 GetHostIP
    0=  
    IF  
        DUP TO rem-ip  
        a2 soc ConnectSocket
        0=  
        IF  
            a3 u3  \
            soc WriteSocketLine DROP  
             TRUE
        ELSE  
   \     S" хост не соединяется" MsgBox  
         FALSE
        THEN  
    ELSE  
  \  S" хост не найден" MsgBox
    DROP
     FALSE
    THEN  
 5000 PAUSE
 soc CloseSocket DROP
ELSE
\ S" сокет не создан" MsgBox
    DROP
THEN  
;
 
%>
 
#( Сервису_активировать_задачу_ОКК-1
NoActive
LoadProfile
Action:
S" 127.0.0.1" 2003
S" S%QUOTE% OKK-1%QUOTE% EVALUATE LAUNCH" EVAL-SUBST  
REMOTESENDMESS DROP
)#

 
Добавлено:

Код:
S" S%QUOTE% OKK-1%QUOTE% EVALUATE LAUNCH"

в удаленной консоли сервиса разворачивается в команды

Код:
S" OKK-1" EVALUATE LAUNCH

т.е. дает команду на запуск задачи с именем ОКК-1

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 09:38 08-12-2011 | Исправлено: AlikasS, 10:27 08-12-2011
brRamires

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlikasS
Не получается. А нет, всё работает, просто у тебя "OKK-1" кириллицей, а я писал латиницей.
Лог сервиса:

Код:
17:34:07 1784 SYSTEM Connection from 'localhost' (127.0.0.1) is established.
17:34:12 1784 SYSTEM Connection from 'localhost' (127.0.0.1) is closed (10054).

Т.е. команда видимо получена, но не выполняется.
Задача сервиса (это на XP):

Код:
#( ОКК-1
NoActive
LoadProfile
Action:
TMSG: "ПОЛУЧЕНО!" 3
)#

 
AlikasS
Где ты берёшь всю эту инфу про REMOTESENDMESS, CreateSocket и т.д. и т.п.? В документации такого не нашёл.
Ещё вопрос: какие файлы из твоей сборки являются 100% необходимыми для работы nnCron, а какие, так сказать, довесок для расширения функционала? (не считая документации и плагинов)

Всего записей: 528 | Зарегистр. 28-09-2008 | Отправлено: 17:37 11-12-2011 | Исправлено: brRamires, 17:58 11-12-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brRamires

Цитата:
Где ты берёшь всю эту инфу про REMOTESENDMESS, CreateSocket и т.д. и т.п.? В документации такого не нашёл.  

все было взято в свое время из разных тем с оф.форума или собственные эксперименты и наработки

Цитата:
Ещё вопрос: какие файлы из твоей сборки являются 100% необходимыми для работы nnCron, а какие, так сказать, довесок для расширения функционала? (не считая документации и плагинов)

я добавил всего то  
- батник reSetnn.bat,  который запускается один раз для правильной прописки сервиса и/или приложения
- файлик Patch-AlikasS.spf для обеспечения работы nnguard в папке путь которой с пробелами
- плагин CronScript.spf для обеспечения интерактивности сервиса в вин7
- файл SPF.ERR с расшифровкой ошибок  
в принципе можно удалить
- wincon.dll файл с константами винды (в сборке не задействован)
- startnnApp.bat батник для запуска крона как приложения (в сборке не задействован)
остальное все родное и местами не нужное
типа файлов
install_svc.bat
startnncron.bat и т.п.

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 02:40 12-12-2011 | Исправлено: AlikasS, 04:43 12-12-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brRamires
еще можно использовать со стороны сервиса плагин remote.spf

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 16:42 18-12-2011 | Исправлено: AlikasS, 03:05 19-12-2011
brRamires

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlikasS

Цитата:
плагин remote.spf

Вроде работает, только не пойму, как использовать опцию REMOTE-PORT и можно ли через неё задавать тот же порт, что и у nnCron?
 
Также не пойму, зачем ты пишешь

Код:
S" 127.0.0.1" 2003  
 S" S%QUOTE% OKK-1%QUOTE% EVALUATE LAUNCH" EVAL-SUBST  
 REMOTESENDMESS DROP

 
если достаточно просто

Код:
S" 127.0.0.1" 2003  
 S" OKK-1 LAUNCH"
 REMOTESENDMESS DROP
?
 
Ещё заметил, что если nnCron по какой-то причине упал, напр., при ошибке в табе, и потом перезапустился через nnGuard, то на сообщения по сети уже не реагирует (из твоего примера выдаёт "хост не соединяется").

Всего записей: 528 | Зарегистр. 28-09-2008 | Отправлено: 19:41 19-12-2011 | Исправлено: brRamires, 19:45 19-12-2011
AlikasS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brRamires

Цитата:
Также не пойму, зачем ты пишешь  
 
Код: S" 127.0.0.1" 2003  
  S" S%QUOTE% OKK-1%QUOTE% EVALUATE LAUNCH" EVAL-SUBST    
  REMOTESENDMESS DROP  
   
 если достаточно просто  
 
Код: S" 127.0.0.1" 2003  
  S" OKK-1 LAUNCH"  
  REMOTESENDMESS DROP  
 
 ?

кое где по простому не срабатывало
 

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

надо смотреть логи, возможно конфликт по портам
 
 
 
Добавлено:


 
 
4fspf.zip
в этой либе есть 3 интересных функции:
мульти WIN-INPUT-TEXT, функция выбора директории guiselectdir и файла guiselectfile
для теста, либу надо поместить в каталог крона
и прописать сл.задачи

Код:
<%
\ импортируем функцию из dll
WINAPI: guimultitext 4fspf.dll
WINAPI: guiselectdir 4fspf.dll
WINAPI: guiselectfile 4fspf.dll
%>
 
#( ввод-multi-text
NoActive
0 VALUE bufff \ переменная где будет храниться адрес строки
Action:
\ выделяем память, адрес выделенной памяти заносим в bufff
1024 ALLOCATE THROW TO bufff
 
 
\ открыли в режиме чтения
bufff S" текст по умолчанию" DROP S" подзаголовок" DROP S" заголовок" DROP 0 guimultitext DROP  
 
 
\ открыли в режиме записи
bufff S" текст по умолчанию" DROP S" подзаголовок" DROP S" заголовок" DROP 1 guimultitext
IF \ был ввод
bufff ASCIIZ> MsgBox
ELSE
\ ничего не было
THEN
 
 
bufff FREE DROP \ освобождаем выделенную память
)#
 
#( selectfileanddir
0 VALUE sMassiv \ переменная, где будет храниться адрес для записи строки
NoActive
Action:
1024 ALLOCATE THROW TO sMassiv \ резервируем место
 
 
\ сама работа с GUI формами
 
 
sMassiv guiselectdir ( adr -- 0 | -1 ) \ на входе адрес куда будет записана строка, на выходе FALSE | TRUE
IF
sMassiv ASCIIZ> MsgBox
THEN
 
 
sMassiv guiselectfile ( adr -- 0 | -1 ) \ на входе адрес куда будет записана строка, на выходе FALSE | TRUE
IF
sMassiv ASCIIZ> MsgBox
THEN
 
 
sMassiv FREE DROP \ освобождаем место
)#
 

Всего записей: 156 | Зарегистр. 30-11-2009 | Отправлено: 16:03 20-12-2011 | Исправлено: AlikasS, 18:10 20-12-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87

Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru