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

» nnCron

Автор: brRamires
Дата сообщения: 30.11.2011 20:32

Код: [no]#( 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>
)#[/no]
Автор: unreal666
Дата сообщения: 30.11.2011 22:21

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

В 7-ке кажется всего 2 варианта работы приложения с правами системы - служба и запуск из планировщика.
Автор: AlikasS
Дата сообщения: 01.12.2011 01:31
brRamires

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

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

Код: id DEL-TI
Автор: unreal666
Дата сообщения: 01.12.2011 07:55
AlikasS

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

Так неинтересно. Лучше скажи, как из nncron'а с правами админа запустить другую прогу с правами системы.

ЗЫ.
Хотя как вариант самим же nncron'ом с правами админа или создавать временную задачу в планировщике и запускать ее или как-то временно пихать прогу в службы и запускать ее оттуда.
Автор: AlikasS
Дата сообщения: 01.12.2011 08:58
unreal666
у brRamires крон работает сервисом

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

это можно
Автор: brRamires
Дата сообщения: 02.12.2011 01:42

Цитата:

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

S" " 32513 0 LoadIconA ADD-TI TO id
скорее всего это из за этого, была ошибка стека
Автор: AlikasS
Дата сообщения: 02.12.2011 05:16
brRamires

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

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

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

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

Код: [no]через удаленную консоль nncron-сервис может принимать команды (в принципе отличный и уже решенный вариант)[/no]
Автор: AlikasS
Дата сообщения: 05.12.2011 13:13
brRamires

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

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

Код: \ консоль разрешена
RemConsole ON
\ рабочий порт
RemConsolePort: 2003
\ доступ с локальоного адреса открыт
RemAllowed: 127.0.0.1
\ остальные закрыты
RemDisallowed: x.x.x.x
Автор: brRamires
Дата сообщения: 07.12.2011 03:58
AlikasS
Что-то у меня не выходит по этому варианту. Файервол вообще не показывает, что nnCron слушает какой бы то ни было порт, хотя всё по инструкции.
Автор: AlikasS
Дата сообщения: 07.12.2011 06:18
brRamires
Цитата:
Что-то у меня не выходит по этому варианту. Файервол вообще не показывает, что nnCron слушает какой бы то ни было порт, хотя всё по инструкции.

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

Код: RemConsole ON
RemConsolePort: 2003
RemAllowed: 127.0.0.1
RemDisallowed: x.x.x.x
Автор: brRamires
Дата сообщения: 08.12.2011 05:51
AlikasS
Разобрался: дело было в том, что задача не выполняется сразу, как я думал, а добавляется к nncron.tab и запускается в начале след. минуты. А если запустить переслать_задачу13456 повторно, до запуска добавленной задачи, то сервис nnCron падает => задача вообще не выполняется.
Т.е. перед добавлением задачи нужно как-то определить, есть ли задача с таким же именем в nncron.tab сервиса, или нет, и если есть, то не добавлять.

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

Покажи пример. Можно ли отправить команду LAUNCH?
Автор: AlikasS
Дата сообщения: 08.12.2011 07:38
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
)#
Автор: brRamires
Дата сообщения: 11.12.2011 15:37
AlikasS
Не получается. А нет, всё работает, просто у тебя "OKK-1" кириллицей, а я писал латиницей.
Лог сервиса:

Код: [no]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).[/no]
Автор: AlikasS
Дата сообщения: 12.12.2011 00:40
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 и т.п.
Автор: AlikasS
Дата сообщения: 18.12.2011 14:42
brRamires
еще можно использовать со стороны сервиса плагин remote.spf
Автор: brRamires
Дата сообщения: 19.12.2011 17:41
AlikasS

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

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

Также не пойму, зачем ты пишешь

Код: [no]S" 127.0.0.1" 2003
S" S%QUOTE% OKK-1%QUOTE% EVALUATE LAUNCH" EVAL-SUBST
REMOTESENDMESS DROP[/no]
Автор: AlikasS
Дата сообщения: 20.12.2011 14:03
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 \ освобождаем место
)#
Автор: ean72
Дата сообщения: 23.12.2011 08:06
Здравствуйте многоуважаемые гуру. Прошу сильно не пинать, но как сделать так чтобы при возникновении ошибки при выполнении задачи она не останавливалась а продолжала выполняться. А то приходится перезапускать крон, что не всегда удобно, а задача юбязана работать каждый час.
Автор: AlikasS
Дата сообщения: 23.12.2011 18:04
ean72

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

...как перехватывать и самостоятельно обрабатывать возникающие исключения?
Автор: brRamires
Дата сообщения: 25.12.2011 14:32
AlikasS
Напиши, как для remote.spf задавать прослушиваемый порт. Так выдаёт ошибку "В стеке мусор":

Код: [no]#( remote-command
WatchRemote: "command"
REMOTE-PORT 3333
Action:
MSG: "word 'command' is received"
)#[/no]
Автор: HelioSS
Дата сообщения: 25.12.2011 14:40
Подскажите как настроить сабж, чтоб он проверял на ftp файл, и, в случае изменения его даты создания, скачивал в нужную директорию на компе.
Автор: brRamires
Дата сообщения: 26.12.2011 00:18
HelioSS, как насчёт использования специализированного софта? Напр., посмотри последний пост здесь: http://www.nncron.ru/forums/viewtopic.php?t=807. Скачать прогу можно здесь: http://soft.mail.ru/program/backsync/2.2
Автор: AlikasS
Дата сообщения: 26.12.2011 03:06
brRamires

Цитата:
AlikasS
Напиши, как для remote.spf задавать прослушиваемый порт. Так выдаёт ошибку "В стеке мусор":

в самом плагине обозначено

Код: 2004 CONSTANT REMOTE-PORT
Автор: HelioSS
Дата сообщения: 26.12.2011 16:37
brRamires

Цитата:
как насчёт использования специализированного софта

Честно говоря нет желания лепить ещё одну прогу .
Думаю, достаточно связки nnCron и Wget.
Только вот как это в nnCron организовать...
Автор: brRamires
Дата сообщения: 26.12.2011 19:34
HelioSS
Так запускай wget, например, каждые 3 часа, с требуемыми параметрами, что-нибудь вроде

Код: [no]#( auto_wget_arch
Time: 0 */3 * * * *
Action:
StartIn: "C:\Wget\bin\"
SWHide NormalPriority
START-APP: C:\Wget\bin\wget.exe -b -m ftp://files.3dnews.ru/pub/arch/quickzip_4.60.017b.exe -P C:\downloads\arch -o C:\downloads\=logs=\arch.txt
)#[/no]
Автор: frozen2
Дата сообщения: 15.01.2012 11:04
Задача: запускать Reminder (Добавить напоминание) не из трея, а по сочетанию клавиш.


Код:
#( Запуск_Reminder
WatchHotKey: "^@t"
Action:
START-APP: tm.exe Reminder "nncron.tab" once|*
)#
Автор: AlikasS
Дата сообщения: 15.01.2012 14:33
frozen2
ты ключ не тот используешь, еще и не правильно (нет текста и надо выбрать что-то одно из once|*, или once или *)

Код: #( Запуск_Reminder3
WatchHotKey: "^@t"
Action:
START-APP: tm.exe NewReminder "nncron.tab" напомнить О!
)#
Автор: frozen2
Дата сообщения: 15.01.2012 15:10
AlikasS
Благодарю. Всё получилось.

Но есть еще одна проблема.
Хотел сделать себе будильник по будням.
Сделал задачу:

Код: #( Воспроизвести_Звук
Action:
PLAY-SOUND: "s:\звук.wav"
)#
Автор: AlikasS
Дата сообщения: 16.01.2012 02:56
frozen2
может как-то так

Код: MIXER-MUTE
10 MIXER-VOLUME!
MIXER-UNMUTE
5 0 DO
5000 PAUSE
10 MIXER+
LOOP

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354

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


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