Помогите "допилить" задачу

Обсуждение программ nnCron и nnCron LITE

Помогите "допилить" задачу

Postby Aushkin » Mon, 19 Sep 2011, 23:08

Началось всё тут:
viewtopic.php?f=5&t=10294&start=105#p28376 и далее история вопроса,
позже переросло в офтоп, за что ещё раз мои извинения автору того топа.
Финальная стадия обсуждения случилась тут:
viewtopic.php?f=5&t=10294&start=120#p28403
и после вежливой просьбы автора выделилось в эту тему.

На текущий момент имеется:

Code: Select all
#( MyTEST
NoDel
ONLY_SYSTEM
AsLoggedUser
LoadProfile
: Inet?  ( -- ? )
HOST-EXIST: "google.com"  \проверка на наличие хоста в Internet
;
: Local?  ( -- ? )
HOST-EXIST: "здесь имя нужного локального хоста" \проверка на доступность локального хоста
;
: rule_only_internet? ( -- ? )
  PROC-EXIST: "MyProgramm.exe" Local? OR 0= Inet? AND \программа НЕ запущена, локалка НЕ доступна, И есть Internet
;
: rule_local_and_internet_no_VPN? ( -- ? )
  PROC-EXIST: "MyProgramm.ex" ONLINE: "MyVPN" OR 0= Local? Inet? AND AND \программа И VPN не запущены, локалка И интернет доступны
;
: rule_MyProgramm_control? ( -- ? )
  PROC-EXIST: "MyProgramm.exe" 0= Local? Inet? AND AND \программа не запущена, локалка и интернет доступны
;
: rule_no_local_no_internet? ( -- ? )
  PROC-EXIST: "ComAgent.exe" Local? Inet? OR 0= AND \программа запущена И нету интернета и локалки
;
VARIABLE MyTEST 
Rule: USERNAME S" SYSTEM" COMPARE USERNAME S" Local Service" COMPARE AND USERNAME S" Network Service" COMPARE AND
Action:
    MyTEST GET
  S" Флаг MyTEST захвачен" CRON-LOG
  S" Задача запустилась" CRON-LOG
    rule_only_internet?
IF
    S" выполнились условия rule_only_internet" CRON-LOG
    SWHide 
    START-APPW: %ComSpec% /c rasdial.exe "GRT"
    PAUSE: 10000
    START-APPW: %ComSpec% /c ipconfig.exe /flushdns
    PAUSE: 10000
    START-APPW: "C:\nnСron\555.cmd"
    PAUSE: 10000
    START-APP: "C:\Program Files (x86)\MyFolder\MyProgramm.exe"
THEN
rule_local_and_internet_no_VPN?
IF
    S" выполнились условия rule_local_and_internet_no_VPN" CRON-LOG
    SWHide
    START-APPW: "C:\nnСron\555.cmd"
    PAUSE: 10000
    START-APP: "C:\Program Files (x86)\MyFolder\MyProgramm.exe"
THEN
rule_MyProgramm_control?
IF
    S" Выполнились условия rule_MyProgramm_control" CRON-LOG
    SWHide
    START-APPW: %ComSpec% /c ipconfig.exe /flushdns
    START-APP: "C:\Program Files (x86)\MyFolder\MyProgramm.exe"
THEN
rule_no_local_no_internet?
IF
    S" Выполнились условия rule_no_local_no_internet" CRON-LOG
    SWHide
    START-APP: %ComSpec% /c ipconfig.exe /flushdns
    START-APP: "C:\nnСron\777.cmd"
    START-APP: %ComSpec% /c taskkill.exe /IM "MyProgramm.exe" /F /T
    PAUSE: 10000 TRAY-REFRESH
    START-APPW: %ComSpec% /c rasdial.exe "MyVPN" /DISCONNECT
    FOR-WINDOWS: "*MyVPN"
        PAUSE: 300
        WIN-CLOSE: "%FOUND-WINDOW%"
    ;FOR-WINDOWS
THEN
S" Задача отработала" CRON-LOG
    MyTEST RELEASE
S" Флаг MyTEST отдан" CRON-LOG
)#


Имеются сомнения в правильности расстановки OR и ADD, а так же и THEN, если не сложно, проверьте.
В целом задача приведена к работоспособному варианту. Осталось разобраться с прибиванием дочернего окна VPN-подключения.
Дочернее окно VPN-подключения после отрубания доступа в инет пытается переподключится и не хочет убиваться, скрываться не хочет тоже.
WIN-HIDE и WIN-CLOSE использовались с тем же результатом. Куда копать не знаю, если есть варианты, готов попробовать.
Ну, может быть ещё попытаться перенести скрипты в тело задачи, что бы не стартовать их отдельными файлами(предыдущие попытки приводили к тому, что задача просто даже не пыталась стартовать).
Почему кстати скрипты могут не запускаться из тела задачи, на что обратить внимание?
Заранее всем спасибо!
Aushkin
 
Posts: 17
Joined: Mon, 12 Sep 2011, 21:22

Re: Помогите "допилить" задачу

Postby makrus » Wed, 21 Sep 2011, 12:33

Aushkin
Имеются сомнения в правильности расстановки OR и ADD, а так же и THEN, если не сложно, проверьте.
проверил, вроде все верно.

Дочернее окно VPN-подключения после отрубания доступа в инет пытается переподключится и не хочет убиваться, скрываться не хочет тоже.
Уточни в чем именно проблема с отловом окна которое надо прибить или же оно отлавливается нормально, но не получается прибить его?
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Re: Помогите "допилить" задачу

Postby Aushkin » Mon, 26 Sep 2011, 20:20

Эммм вот бы ещё понять отлавливается ли оно действительно, а потом бы уже понять почему не прибивается.
А получается штука такая, если связь с Internet-ом пропала, то пропадает и связь с локалкой, ну и по этому событию отрабатывает соответствующая часть задачи. Так вот приложение она благополучно убивает. А вот VPN-подключение если успевает отключить ДО того, как само VPN-подключение "просекло" что связь пропала и надо бы переконектиться, то всё в порядке. А вот если VPN-подключение "просекло" раньше, чем отработала эта часть задачи, то появляется окно реконекта и пытается переконектиться по-новой. И паузы выставлял, что бы уж наверняка отловить, но нефига, не грохается это окно никак.
Aushkin
 
Posts: 17
Joined: Mon, 12 Sep 2011, 21:22

Re: Помогите "допилить" задачу

Postby makrus » Tue, 27 Sep 2011, 11:34

Aushkin
Эммм вот бы ещё понять отлавливается ли оно действительно...

Если оно отлавливается, то ты знаешь маску окна по которому его отлавливаешь, т.е. ты можешь его, например, подвинуть на экране.
Сделай задачку на перемещение окна, с маской по которой отлавливаешь, как окно появится, запускай задачку и смотри - переместилось окно или нет... если нет, то значит маска не верная.
Надо сначала научиться гарантированно его отлавливать, а уж потом думать как "прибивать".
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Re: Помогите "допилить" задачу

Postby VoidVolker » Tue, 27 Sep 2011, 19:33

Тупо:
Code: Select all
." Задача YYY запустилась." CR
<... какие-то буквы ...>
." Задача YYY завершилась." CR

Далее просто открываем консоль и смотрим в черное окошко в ожидании появления заветных слов.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Помогите "допилить" задачу

Postby Aushkin » Thu, 29 Sep 2011, 21:54

Отлавливалось оно с помощью WinSpy, куда уж верней-то. Вариант по маске уже последний, до того всяческие вариации "win_pattern" пробовались, не пашет, хоть застрелись. Попробую с перемещением поиграться, вот только если при прочих равных окно переместится, то должно и закрываться :-) А раз не закрывается, логично предположить, что не станет и перемещаться по той же причине - не отлавливается.
Буду пытаться. :-)
Aushkin
 
Posts: 17
Joined: Mon, 12 Sep 2011, 21:22


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot] and 2 guests

cron