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

» nnCron-Планировщик с поддержкой скриптового языка

Автор: lucky_Luk
Дата сообщения: 07.08.2006 20:00
unreal666

Цитата:
что у тебя считается "не двигать мышку"? Просто даже если ее не двигать, то она может сдвинуться на несколько пикселей (если мышь хреновая).

Мышь нормальная, не дергается так что можно попробовать без разброса. Проблема с возвратом на текущие координаты - пробовал для получения текущих координат юзать слово MOUSE-POS, но не пойму как 2 числа положить в массив, а потом их достать и передать слову MOUSE-MOVE:, к тому же при извлечении из массива они будут наоборот (т.е. сначала координата Y, а потом X).
Автор: unreal666
Дата сообщения: 07.08.2006 20:51
lucky_Luk

Цитата:
но не пойму как 2 числа положить в массив, а потом их достать и передать слову MOUSE-MOVE:

1. Есть переменные двойной длины 2VARIABLE (см.справку)
2. Вместо MOUSE-MOVE: <x> <y> используй <x> <y> MOUSE-MOVE

Т.е. задача что-то типа этого

Код: #( TEST-MOUSE-MOVE
WatchHotKey: "^+@d"
2VARIABLE startmousepos \ Переменная для хранения начальной позиции мыши
2VARIABLE targetmousepos \ Переменная для хранения целевой позиции мыши
Action:
    0 1024 targetmousepos 2! \ Координаты x и y цели
    MOUSE-POS startmousepos 2! \ Запоминаем начальную позицию мыши
    targetmousepos 2@ MOUSE-MOVE \ Передвигаем в нужную позицию
    2000 PAUSE
    targetmousepos 2@ MOUSE-POS D= \ Сравниваем нынешнюю позицию и позицию цели
    IF
        startmousepos 2@ MOUSE-MOVE \ Переместить на начальное положение
    THEN
)#
Автор: lucky_Luk
Дата сообщения: 07.08.2006 21:50
unreal666

Цитата:
Т.е. задача что-то типа этого

Спасибо, все работает . Задача была нужна для отображения по команде с клавиатуры скрытой панели задач (находится сверху), повесил ее на CTRL+SHIFT (комбинация для переключения языка клавы).
Если еще кому-то нужна такая фича, то берете пример задачи от unreal666, вписываете координаты цели, например 200 0, а чтобы задача отключалась если пользователь двигает мышкой (например чтобы вызвать прогу из трея), то в конце задачи перед THEN вписываете ELSE EXIT.
Автор: Stygis
Дата сообщения: 07.08.2006 21:51
Тихий ужс.... 60 задач... Из которых активны 11...
Автор: lucky_Luk
Дата сообщения: 07.08.2006 21:54
Stygis

Цитата:
Тихий ужс.... 60 задач... Из которых активны 11...

Не понял ?
Автор: Stygis
Дата сообщения: 07.08.2006 21:56
lucky_Luk
А чего непонятного? 60 задач у меня в списке... Только 11 из них используются
Автор: unreal666
Дата сообщения: 07.08.2006 21:56
lucky_Luk

Цитата:
чтобы задача отключалась если пользователь двигает мышкой (например чтобы вызвать прогу из трея), то в конце задачи перед THEN вписываете ELSE EXIT.

А это зачем ? Если после THEN идет сразу конец задачи, то ELSE EXIT не нужен.

Stygis

Цитата:
Тихий ужс.... 60 задач... Из которых активны 11...

Остальные для эксперимента что ли Или для ручного запуска?

Я там тебе на форуме nncron письмо написал.
Автор: Stygis
Дата сообщения: 07.08.2006 22:08
unreal666

Цитата:
Остальные для эксперимента что ли

Эксперимент + помощь на форумах %)

Цитата:
Я там тебе на форуме nncron письмо написал.

А я уже на мыло скинул
Автор: lucky_Luk
Дата сообщения: 07.08.2006 22:08
unreal666

Цитата:
А это зачем ? Если после THEN идет сразу конец задачи, то ELSE EXIT не нужен.

Действительно не нужно, спасибо что просветил.
Я такую конструкцию использовал в других задачах и теперь по привычке везде леплю - например есть большая задача, где-то в ней есть проверки разных условий одна после другой и при отрицательном ответе на любую проверку задача должна останавливаться. Так чтобы весь остальной кусок в IF...THEN не совать и вложенных циклов не делать я использую ELSE EXIT THEN.

Добавлено:
Нужна задача, которая при запуске проверяет, выполняется ли другая задача - если нет то запускает ее, а если да то завершает свою работу.
Автор: Nicka_Grey
Дата сообщения: 08.08.2006 11:30
Нужна помощь в написании следующего скрипта:
На локальной машине есть определенная папка (пускай будет Folder), содержащая n-ое кол-во папок в себе (пускай будет F1, F2 ... F3).
Нужно что бы:
1.Ежедневно задача каждую подпапку из папки Folder копировала в определенно место (допустим на диск Е:\Test) в папку по текущей дате (в формате DD.MM.YYYY)
2.Все папки на диске Е:\Test название которых (в формате DD.MM.YYYY) меньше текущей даты на 15 дней удалять.
3.При появлении в локальной сети машины с IP xx.xx.xx.xx синхронизировать папки на дискке Е:\Test и на шаре машины с IP xx.xx.xx.xx (т.е. отсутствующие папки скопировать, лишние удалить).

Первых 2 пункта воде сделал, может не самым лучшим вариантом, но работает, сейчас под рукой просто нет скрипта. А вот с 3-им пунктом как то не очень то получается. А именно, скопировать папки которых нет на машине в сети, могу, а вот удалить... Точнее не знаю как сравнить название папки (в формате DD.MM.YYYY) с текущей датой...
Плз, нужна помощь!

Спасибо.
Автор: Stygis
Дата сообщения: 08.08.2006 14:41
lucky_Luk

Цитата:
проверяет, выполняется ли другая задача

Вот здесь задача, которая из одной задачи останавливает выполнение другой. Насколько я понял (сейчас проверить не могу), если t1-id == 0, то задача не запущена.


Цитата:
запускает ее

<имя задачи> LAUNCH

Добавлено:
Nicka_Grey
Вот тут есть задачи с вырезанием из полного пути директории файла. Соответственно вырезаешь путь - запихиваешь его в переменную. В другую переменную кидаешь дату. Сравниваешь.
Автор: Nicka_Grey
Дата сообщения: 08.08.2006 16:01
Stygis
Спасибо
я как тестовый вариант и сделал с регеспами. Но после отработки задачи все время получаю "Мусор в стеке"...
Автор: Stygis
Дата сообщения: 08.08.2006 16:25
Nicka_Grey
Значит где-то поставил что-то лишнее или наоборот, недоставил
В результате работы задачи стек не должен измениться - т.е. стек до запуска задачи и после должен быть одинаковым. А у тебя либо что-то осталось от задачи (возможно, поможет DROP), либо какое-нибудь условие (или еще что-нить) пытается взять со стека значение, которого там нет.
Приводи текст задачи (не забываем про [more]) - поглядим
Автор: Nicka_Grey
Дата сообщения: 08.08.2006 16:31
Stygis
Спасибо
ок
как доберусь до самой задачи - закину сюды
Автор: lucky_Luk
Дата сообщения: 08.08.2006 21:15
Stygis

Цитата:
Вот здесь задача, которая из одной задачи останавливает выполнение другой. Насколько я понял (сейчас проверить не могу), если t1-id == 0, то задача не запущена.

Не понял где в этой задаче задается имя второй задачи (существование которой проверяется).
Как запретить одновременную работу двух копий одной задачи?
Автор: Stygis
Дата сообщения: 08.08.2006 21:49
lucky_Luk

Код: #( task1
VARIABLE t1-id
Action:
GetCurrentThreadId t1-id !
)#

#( task2
WINAPI: OpenThread KERNEL32.DLL
Action:
t1-id @ ?DUP
IF
0 1 OpenThread ?DUP
IF STOP THEN
THEN
)#
Автор: unreal666
Дата сообщения: 09.08.2006 00:23
Чего-то нифига не пойму. Сделал для эксперимента таку задачу.

Код: #( Test_ClipBoard
NoActive
AsLoggedUser
LoadProfile
Action:
CLIPBOARD 0<>
IF
MSG: "%CLIPBOARD%"
THEN
)#
Автор: DJ makrus
Дата сообщения: 09.08.2006 05:09
unreal666

Цитата:
...
BEGIN DEPTH WHILE DROP REPEAT
...
а ты уверен что в начале выполнения задачи стек пустой?
у меня есть слово
Код: : depth_tmsg ( -- ) \ выводит текущее значение глубины стека в течении 5 сек.
    
DEPTH TO index TMSG: "Глубина стека: %index%" 5
;
Автор: obtim
Дата сообщения: 09.08.2006 16:21
Помогите создать задание: На автоматическое переподключение к VPN в случае обрыва связи!
Автор: Stygis
Дата сообщения: 09.08.2006 16:27
unreal666
А так не красивше будет?

Цитата:
CLIPBOARD ?DUP
IF
MsgBox
ELSE
DROP
THEN


DJ makrus

Цитата:
строка (два значения на стеке)

Говори точнее - au-строка. Там же еще другие есть...

Добавлено:
obtim

Код: #( Test_Dial2
WatchDisconnect
AsLoggedUser
Action:
START-APP: D:\WINDOWS\System32\rasphone.exe -d <имя соединения>
)#
Автор: lucky_Luk
Дата сообщения: 09.08.2006 23:25
Stygis

Цитата:
В task1 задается переменная t1-id

А, теперь понятно. Я сам до подобного дошел, только попроще в плане записи. В начале раздела Action: задачи от unreal666 вписал такую конструкцию:

Код:
Task_runs 1 =
IF
EXIT
THEN
1 TO Task_runs
Автор: unreal666
Дата сообщения: 10.08.2006 00:03
lucky_Luk
Переменные и слова вне задач лучше объявлять конструкцией вида

Цитата:
<%
VARIABLE x
VARIABLE y
: z .... x @ .... y ! ;
%>

Тогда имя задачи не будет появляться в списке задач.
У меня вообще для удобства все глобальные переменные вынесены в отдельный tab.
Т.е. в самих задач у меня переменных нет. Так проще контролировать уникальность переменнных, чтобы случайно не ввести еще одну переменную с таким же именем.
Автор: lucky_Luk
Дата сообщения: 11.08.2006 00:05
unreal666

Цитата:
Тогда имя задачи не будет появляться в списке задач.

Спасибо за информацию, есть вопросы. Эту конструкцию можно так и писать в кронтабе или еще что-то нужно?
Есть ли требования относительно ее положнения в кронтабе - выше или ниже задач в которых используются объявленные переменные?
Можно ли так объявлять переменные типа VALUE?
Где в Хелпе сабжа это написано, хочу подробнее почитать.
Автор: unreal666
Дата сообщения: 11.08.2006 00:52
lucky_Luk

Цитата:
Эту конструкцию можно так и писать в кронтабе или еще что-то нужно?

В любом крон-табе вне задач.

Цитата:
Есть ли требования относительно ее положнения в кронтабе - выше или ниже задач в которых используются объявленные переменные?

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

Цитата:
Можно ли так объявлять переменные типа VALUE?

Вот из справки:

Цитата:
А как объявить пеpеменную или опpеделить слово вне pамок конкpетного задания, напpимеp в самом начале кpонтаба?

Любые фоpт-отступления вне #( и )# можно делать пpи помощи констpукции <% .... %>. Подобную констpукцию можно pасположить где угодно в кpонтабе, в том числе и в самом его начале.


Цитата:
Где в Хелпе сабжа это написано, хочу подробнее почитать.

Справка -> Дополнительная информация -> Неотложная помощь по Форту -> А как объявить пеpеменную или опpеделить слово вне pамок конкpетного задания, напpимеp в самом начале кpонтаба?
Автор: lucky_Luk
Дата сообщения: 11.08.2006 01:03
unreal666

Цитата:
VARIABLE x
VARIABLE y

Эта запись как я понял отвечает за тип и имя переменной, но не пойму что означает конструкция

Цитата:
: z .... x @ .... y ! ;

Автор: unreal666
Дата сообщения: 11.08.2006 01:16

Цитата:
не пойму что означает конструкция

Это схематично
Вообще это определение слова, например
: show_values NodeValue . CR ;
Автор: unreal666
Дата сообщения: 12.08.2006 00:02
Чем отличаются команды POWEROFF и SHUTDOWN ?


Stygis
У тебя есть задачи, в именах которых присутствуют пробелы?
Т.е. например такое имя
»» Force Reboot System
С пробелами красивей
Автор: Stygis
Дата сообщения: 12.08.2006 00:22
unreal666

Цитата:
У тебя есть задачи, в именах которых присутствуют пробелы?

Неа... Рефлекс


Цитата:
Чем отличаются команды POWEROFF и SHUTDOWN ?

Из описания следует, что POWEROFF совсем выключает питание, а SHUTDOWN доводит до "Теперь питание компьютера можно отключить"
Автор: unreal666
Дата сообщения: 12.08.2006 00:42
Stygis
Описание то я читал, но для ATX систем это по идее одно и то же.

Цитата:
Неа... Рефлекс

А у меня есть. В том числе и с этими стрелочками.
Автор: Stygis
Дата сообщения: 12.08.2006 10:14
unreal666

Цитата:
А у меня есть.

И нормально работает?


Цитата:
ATX систем это по идее одно и то же

Ну дык попробуй и выясни - я помню и на АТХ тоже видел этот экран как-то

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Как писать кириллицей, а НЕ латиницей (транслитом)


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