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

» nnCron

Автор: frozen2
Дата сообщения: 17.01.2012 18:31
Не идет.
Выдает ошибку в кронтаб файле, линия 5.


Код: #( Воспроизвести_001
MIXER-MUTE
10 MIXER-VOLUME!
MIXER-UNMUTE
5 0 DO
5000 PAUSE
10 MIXER+
LOOP
Action:
PLAY-SOUND: "s:\music\звуки для nncron\001.wav"
)#
Автор: AlikasS
Дата сообщения: 18.01.2012 12:41
frozen2

Цитата:
У меня установлена Windows 7, где-то здесь читал, что слова MIXER не работает в этой ОС.

в ней слова управления звуком работают со своим регулятором звука (для nncron)
глобальный регулятор они не затрагивают.
для теста открой микшер громкости и запусти задачу на выполнение и увидишь

Код: #( Воспроизвести_0019
NoActive
Action:

MIXER-MUTE
10 MIXER-VOLUME!
MIXER-UNMUTE
PLAY-SOUND: "C:\Program Files\Microsoft Flight Simulator X\Sound\UIMusic\FSX04.wav"

5 0 DO
5000 PAUSE
10 MIXER+
LOOP

)#
Автор: Weinaum
Дата сообщения: 19.01.2012 19:25
что то я запарился, подскажите, как запустить задачу - первый раз в конкретный день в конкретное время, например, 18 апреля 2012 , а далее каждые 10 минут?
Автор: frozen2
Дата сообщения: 19.01.2012 20:09
AlikasS
Работает. Открыл микшер, видно, что ползунок при запуске задачи двигается.
Но непонятно, что означают слова в кронтабе:
5 0 DO
и
LOOP
Автор: lucky_Luk
Дата сообщения: 19.01.2012 20:17
frozen2

Цитата:
Но непонятно, что означают слова в кронтабе:
5 0 DO
и
LOOP

Это цикл, все что между DO и LOOP, повторится, в данном случае, 5 раз. Посмотри Справку nnCron, по DO...LOOP.
Автор: AlikasS
Дата сообщения: 20.01.2012 02:27
Weinaum

Цитата:
что то я запарился, подскажите, как запустить задачу - первый раз в конкретный день в конкретное время, например, 18 апреля 2012 , а далее каждые 10 минут?


Код: Time: */10 * * * * *
Rule: Days@ 2012 04 18 DAYS < NOT
Action:
Автор: Weinaum
Дата сообщения: 20.01.2012 21:46
AlikasS
Спасибо, вроде как все нормально отрабатывает, потестил.
А можно еще добавить условие завершения, ну скажем, утром такого то дня, как в примере, в 9.45 начинает, в 24.00 того же дня завершает работу?
Автор: AlikasS
Дата сообщения: 21.01.2012 05:04
Weinaum

Цитата:
А можно еще добавить условие завершения, ну скажем, утром такого то дня, как в примере, в 9.45 начинает, в 24.00 того же дня завершает работу?

как то так

Код: \ только 18.04.2012, с 9-45 до 23-59 каждые 10 минут
Rule: Days@ 2012 04 18 DAYS = INTERVAL: 9:45-23:59/00:10 AND
Автор: Weinaum
Дата сообщения: 21.01.2012 11:05
AlikasS
ок, спасибо, буду пробовать.
Тут вчера весь вечер тестил, почему то оказалось, что в первозданном варианте сам по себе после 24.00 перестает работать...может, что то не правильно задачу составил, а может, так и должно быть....
Автор: frozen2
Дата сообщения: 22.01.2012 19:25
Как называется команда "nncron: Параметры", которая вызывается из трея?
Надоело кликать мышкой. Поставить бы на это действие горячую клавишу.

Отмена.
Почитал справку, получилось. Кому интересно:


Код:
#( Параметры_nnCron
WatchHotKey: "^{NUMPAD2}"
Action:
START-APP: tm.exe Options
)#
Автор: AlikasS
Дата сообщения: 26.01.2012 06:09
frozen2

Цитата:
Как называется команда "nncron: Параметры", которая вызывается из трея?
Надоело кликать мышкой. Поставить бы на это действие горячую клавишу.

а смысл, так часто вызывать?
Автор: lucky_Luk
Дата сообщения: 26.01.2012 09:55
Как с помощью сабжа замутить window roll-up, как в этой софтине?
http://www.palma.com.au/winroll/

Я примерно представляю как свернуть окно вверх, подтянув нижнюю границу к самому заголовку (это и делает WinRoll). Но не знаю как запоминать индивидуальный размер по высоте для нескольких окон, чтобы их потом разворачивать в исходное состояние.
Переменных в задаче не напасешься на каждое окно. Значит, ИМХО, нужен некий текстовый файл, куда бы сабж писал строчку Window Handler - размер по высоте, для каждого окна, а при возврате окна в исходное состояние чтобы брал его исходную высоту из этого файла. Может кто-то делал что-то похожее, с поиском и хранением данных в файле или может можно замутить это дело не в файле, а в массиве?
Автор: AlikasS
Дата сообщения: 27.01.2012 08:15
lucky_Luk
по щелчку правой клавишей мыши на элементах окна
1.свернуть 2.развернуть 3.закрыть будут выполняться соответственно действия
1.свернуть в трей 2.укоротить/вернуть окно 3.окно поверх всех/снять
необходимо подключить следующие плагины
ini.spf win2tray.spf keystate.spf
и задача будет выглядеть так

Код: #( CLASSIC-TASK-#-work_with_mouse
VARIABLE Pwot-list
VARIABLE handl-size-list
: ~2ini S" %APPDATA%\nnCron\" EVAL-SUBST S" handl-size.ini" S+ ;
: emul>ini ~2ini EXIST? NOT IF
S" [handl-size]%crlf%" EVAL-SUBST ~2ini FWRITE
THEN
~2ini INI-FILENAME
S" handl-size" INI-SECTION
;

: sh/vi { \ x y b r visota shirina -- }
GetForegroundWindow WIN-RECT TO x TO y TO b TO r
b x - TO shirina
r y - TO visota
shirina visota
;
SingleInstance
VARIABLE allowMB1
NoLog
Action:
BEGIN
    VK_RBUTTON KEY-PRESSED?
    IF
        allowMB1 @
        IF
        MOUSE-POS 16 LSHIFT OR
        0 132 GetForegroundWindow SendMessageA DUP DUP

        8 =
        IF
        WIN-TO-TRAY: "%GetForegroundWindow%"
        THEN

        9 =
        IF
            GetForegroundWindow handl-size-list 2DUP InList?
            IF
            DelNode
            S" hendl" GetForegroundWindow N>S S+ emul>ini INI-GET-VALUE S>NUM
            S" hendl" GetForegroundWindow N>S S+ S" " INI-SET-VALUE
            sh/vi DROP SWAP WIN-RESIZE
            ELSE
            AppendNode
            S" hendl" GetForegroundWindow N>S S+ sh/vi SWAP DROP N>S emul>ini INI-SET-VALUE
            sh/vi DROP 36 WIN-RESIZE
            THEN
        THEN

        20 =         IF
            GetForegroundWindow DUP Pwot-list 2DUP InList?
            IF
            DelNode
            WIN-NOTOPMOST
            ELSE
            AppendNode
            WIN-TOPMOST
            THEN
        THEN

        allowMB1 OFF
        THEN

    ELSE
        allowMB1 ON
    THEN
    PAUSE: 100
AGAIN
)#
Автор: lucky_Luk
Дата сообщения: 27.01.2012 09:37
AlikasS

Цитата:
и задача будет выглядеть так

Спасибо.
Но там где-то ошибка есть, сабж ругается на ошибку в кронтабе, если добавить эту задачу, указывает на строку
~2ini INI-FILENAME

Непонятно, зачем используется CLASSIC-TASK и за что в задаче отвечает LSHIFT.
ИМХО, лучше триггером поставить не правую кнопку мыши, а среднюю, но это я и сам сделаю.

Добавлено:
И почему %APPDATA%\nnCron\
Вроде должно быть так:
%APPDATA%\Roaming\nnCron\ - именно там файлы сабжа лежат.

Добавлено:
Посылание окна в трей работает на Win7?
Эта функция в оригинальном WinRoll на Win7 не работает, окно сворачивается в трей, но значка в трее нету.
Автор: AlikasS
Дата сообщения: 27.01.2012 11:13
lucky_Luk

Цитата:
Но там где-то ошибка есть, сабж ругается на ошибку в кронтабе, если добавить эту задачу, указывает на строку
~2ini INI-FILENAME

Цитата:
необходимо подключить следующие плагины
ini.spf win2tray.spf keystate.spf
и перезапустить крон


Цитата:
Непонятно, зачем используется CLASSIC-TASK и за что в задаче отвечает LSHIFT.

CLASSIC-TASK описание есть в хелпе, спрятать задачу в меню
LSHIFT - долго объяснять, необходимый сдвиг параметра для слова SendMessageA (необходим для его параметров)
APPDATA - системная переменная, посмотри к консоле крона S" %APPDATA%" EVAL-SUBST TYPE
она как раз и даст путь о котром ты пишешь
ты наверное путаешь с USERPROFILE


Цитата:
Посылание окна в трей работает на Win7?

работает
Автор: lucky_Luk
Дата сообщения: 27.01.2012 12:42
AlikasS
Плагин ini.spf был в папке Plugins, но не был подключен, а я думал что сабж подключает все плагины из папки автоматически.
По остальному все ясно, спасибо.

Добавлено:
А можно сделать чтобы действие "укоротить/вернуть окно" выполнялось по клику правой мышкой не только на кнопке окна, но и по клику на заголовке окна?

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

Добавлено:
Вроде даже проще задача будет, разницу между клик-даблклик-кликхолд отловить проще, чем нажатия по трем разным элементам управления.
Автор: AlikasS
Дата сообщения: 27.01.2012 15:13
lucky_Luk

Цитата:
А можно сделать чтобы действие "укоротить/вернуть окно" выполнялось по клику правой мышкой не только на кнопке окна, но и по клику на заголовке окна?

...как узнать над каким элементом активного окна сейчас находится указатель мыши?


Цитата:
Или сделать действия по клик-даблклик-кликхолд
не понял куда будет мышь кликать и сколько раз


Цитата:
Вроде даже проще задача будет, разницу между клик-даблклик-кликхолд отловить проще, чем нажатия по трем разным элементам управления
что за 3 элемента?

Добавлено:
а, понял, там надо будет таймер вводить и считать время нажатия и клики и периоды между кликами

Добавлено:
т.е., если хочется, есть поле для творчества и экспериментов
Автор: lucky_Luk
Дата сообщения: 27.01.2012 16:12
AlikasS


Цитата:
не понял куда будет мышь кликать и сколько раз

В любом месте по заголовку окна.

Один клик средней кнопкой - укоротить/вернуть. Это обязательно сделать.
Даблклик - окно поверх всех/на задний план (опционально, можно и как сейчас).
Нажатие и удерживание средней кнопки (как при перетаскивании) - свернуть в трей (тоже опционально).
А то клики по элементам не всегда срабатывают, нужно точно метить в центр элемента. Особенно проблема с Firefox.

Три элемента управления окном - это кнопки минимизировать, максимизировать, закрыть.

Добавлено:
AlikasS


Цитата:
а, понял, там надо будет таймер вводить и считать время нажатия и клики и периоды между кликами

А разве плагины не понимают разницу между клик, даблклик и удержанием кнопки мыши?
Ведь эмулировать эти нажатия (клик, двойной клик, клик и удержание), без таймеров, сабж уже умеет.

Добавлено:
За ссылку спасибо, теперь понятно что за цифры в задаче.

Добавлено:
Добавил триггер для укорачивания окна, если указатель мыши на заголовке окна.
А с Firefox и MS Office проблемы, плохо реагируют на клики по элементам управления окном и по заголовку. Фиг с ними.
Остальное все устраивает, спасибо.

Добавлено:
Блин, есть проблема: если закрыть укороченное окно, то потом оно откроется укороченным, но его нельзя будет вернуть кликом, похоже что значение высоты такого окна удаляется из инишника.
Поэтому нужно сделать еще один подмодуль, чтобы сабж обнаруживал, что закрываемое сейчас окно - укороченное и перед закрытием разворачивал его.
Автор: AlikasS
Дата сообщения: 28.01.2012 02:39
lucky_Luk

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

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

Цитата:
Поэтому нужно сделать еще один подмодуль, чтобы сабж обнаруживал, что закрываемое сейчас окно - укороченное и перед закрытием разворачивал его.

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



Добавлено:
как то так

Код: VK_LBUTTON KEY-PRESSED?
IF
allowMB1 @
IF
MOUSE-POS 16 LSHIFT OR
0 132 GetForegroundWindow SendMessageA DUP DUP

20 = IF
GetForegroundWindow handl-size-list 2DUP InList?
IF
DelNode
S" hendl" GetForegroundWindow N>S S+ emul>ini INI-GET-VALUE S>NUM
S" hendl" GetForegroundWindow N>S S+ S" " INI-SET-VALUE
sh/vi DROP SWAP WIN-RESIZE
THEN
THEN
allowMB1 OFF
THEN
ELSE
allowMB1 ON
THEN
Автор: lucky_Luk
Дата сообщения: 28.01.2012 13:09
AlikasS

Цитата:
как то так

Оно как-то странно работает теперь. Когда получает команду укоротить окно, укорачивает и тут же раскрывает обратно. А бывает что нормально укорачивает, но перед закрытием не разворачивает, поэтому окно потом открывается свернутым. А бывает нормально отрабатывает. Фигня какая-то.

А еще у Проводника, оказывается, окно укоротить нельзя, даже мышкой тупо нижнюю границу задвинуть до заголовка нельзя. А у Firefox и MS Office какие-то мутные заголовки, на которых задача не работает или работает редко. Блин, а в XP так удобно было все с WinRoll.

Добавлено:
Вроде сейчас нормально стало отрабатывать разворачивание перед закрытием окна и укорачивает тоже нормально. Был какой-то мутный кейс.

Добавлено:
Задача не работает с софтом, запущенным от имени администратора (через подтверждение UAC). Вот зараза.
Автор: frozen2
Дата сообщения: 04.02.2012 13:08

Цитата:
а смысл, так часто вызывать?

Для отладки tab-файлов, их у меня больше 10-ти, приходтся часто добавлять и удалять.


Не работает клавиша Shift.
Задача такая. Активизировать браузер Opera, нажать сочетание клавиш shift+стрелка вниз (в этом браузере это сочетание активизирует ссылку внизу и ссылка помечается рамкой) и нажать Enter (т.е. перейти по ссылке).
Нажимается только стрелка (видно по движению страницы вниз), shift не нажимается. Пробовал двумя способами.
1)

Код:
#( Нажать_на_ссылку
Time: 30 23 * * * *
NoActive
Action:
PAUSE: 500
WIN-ACTIVATE: "/.*opera/i"
SEND-KEYS: "+{DOWN}"
PAUSE: 500
SEND-KEYS: "{ENTER}"
Автор: lucky_Luk
Дата сообщения: 04.02.2012 21:39
frozen2


Цитата:
Не нашел в справке, как отключить звук при сообщениях.

ИМХО, звук при появлении сообщений и пр. от nnCron издает винда.
Автор: AlikasS
Дата сообщения: 16.02.2012 12:25
Инсталлятор для всех версий Windows
Автор: lucky_Luk
Дата сообщения: 16.02.2012 12:28
Автор сабжа что делает, выставил проект на продажу или просто ждет манны небесной и заморозил проект?
Автор: AlikasS
Дата сообщения: 16.02.2012 12:40
из редких сообщений от автора,
ждет предложений по "усыновлению" крона.
а на просьбу, через личку, пересобрать крон с моими правками, тишина...
Автор: lucky_Luk
Дата сообщения: 16.02.2012 14:53
AlikasS


Цитата:
ждет предложений по "усыновлению" крона.

А сколько он хочет, не говорит? И как собрался слить - чтобы другой человек развивал, делал свой офсайт и т.д. - или хочет чтобы всю структуру взяли на работу, вместе с автором?
Странно что столько лет автор развивал сабж, а теперь не просто хочет его слить, но и утратил к нему интерес.

Добавлено:
Пусть бы хоть финалку выпустил...
Автор: jakutama
Дата сообщения: 17.02.2012 12:08
каким образом возможно реализовать остановку приложения именно по "крестику" и после того как оно выгрузится из памяти произвести повторный его запуск ?
такую процедуру необходимо проводить раз в 2-3 дня
есть некая команда
WIN-CLOSE: "PROGRAMMA"
но как привязать проверку что она выгрузилась уже и запуск ее после этого ?
Автор: lucky_Luk
Дата сообщения: 17.02.2012 12:28
jakutama

Цитата:
каким образом возможно реализовать остановку приложения именно по "крестику" и после того как оно выгрузится из памяти произвести повторный его запуск ?

Комбинация ALT+F4 (WIN-SEND)окну приложения - пойдет?
Дальше проверка наличия процесса (PROC-EXIST) и если наличия нету, тогда запуск исполняемого файла.

А зачем по крестику, ProcStop не годится?

Добавлено:
Дай название процесса, название исполняемого файла твоей программы (вместе с путем от корня диска) и текст который в заголовке окна пишется. Накатаем задачу.
Автор: jakutama
Дата сообщения: 17.02.2012 12:30
ALT+F4 в том то и дело что не срабатывает, нужно только нажатие по крестику...


вводные данные

приложение лежит:
d:\bes6\bin\scu.exe

название окна
Dorland Management Agent

перезапуск необходим 1 раз в 3 дня

ps корректное завершения процесса ОБЯЗАТЕЛЬНО, вариант "срубывания" не подходиит
ps2 о вопросе альт+ф4
пробовал скриптами тушить
sh.sendkeys "%{F4}" и тоже не отрабатывало, потому только крестик поможет ну и в реальности отрабатывает
Автор: lucky_Luk
Дата сообщения: 17.02.2012 13:21
jakutama

Цитата:
ps корректное завершения процесса ОБЯЗАТЕЛЬНО, вариант "срубывания" не подходиит

Поищи в Хелпе крона, вроде бы ProcClose делает именно "мягкое" завершение процесса.
Ошибся, правильное название слова - PROC-CLOSE:

А вот с чисто эмуляцией клика по крестику дела похуже. Но сделать можно, эмуляцией движения и кликов мышки (MOUSE-MOVE и т.д.).


Цитата:
пробовал скриптами тушить

А вручную, комбинация ALT+F4 не отрабатывает?

Добавлено:
Тебе нужна вот эта штука:
http://www.nncron.ru/help/RU/working/plugins/procwin.spf.htm
Плагин procwin.spf по-моему входит в поставку nnCron (в сборках точно есть), но проверь в параметрах, чтобы плагин был подключен.

Попробуй останавливать процесс своей программы этим словом. Если она отреагирует нормально (а не как на тупое прибивание процесса) это очень упростит задачу. Проверь.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354

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


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