Запуск приложения с проверкой наличия соединения с Internet

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

Postby makrus » Fri, 18 May 2007, 17:23

-=A=-
По этом по логике и написал хост1 или хост 2 или хост3 и софтины нет
если я верно понял хелп, то должно быть как у меня, в твоем варианте, если я верно понимаю получается иначе
проги нет ИЛИ хост1 есть ИЛИ хост2 есть И хост3 есть

В Форте стек работает по принципу LIFO, т. е. последний вошел - первый вышел.
после
Code: Select all
HOST-EXIST: "www.rambler.ru"
HOST-EXIST: "www.google.com"
HOST-EXIST: "www.ya.ru"
PROC-EXIST: "C:\Program Files\MyProgram\MyFile.exe" NOT
на стеке останется четыре значения-флага, причем "есть\нет-прога" будет на верху стека и его "съест" первый же OR. В моём варианте "есть\нет-прога" будет на самом дне стека и выйдет оттуда последним - его и заберет AND
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Postby -=A=- » Fri, 18 May 2007, 17:46

Сейчас пробую твой код, не работает, вернее если запускать вручную, то работает, а по таймеру нет.
Я подумал, что дело в написании, у тебя:

Code: Select all
Time: */5


поправил на:

Code: Select all
Time: */5  * * * * *


не спасло,
попробовал сократить

Code: Select all
PROC-EXIST: "C:\Program Files\MyProgram\MyFile.exe"


до просто имени процесса:

Code: Select all
PROC-EXIST: "MyFile.exe"


тоже не спасло, хотя если стартовать руками, запускается как и раньше.
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

Postby -=A=- » Fri, 18 May 2007, 17:48

Вырезал вот это:

Code: Select all
Rule: USERNAME S" SYSTEM" COMPARE 0=


и всё заработало :(
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

Postby makrus » Fri, 18 May 2007, 18:14

-=A=-
Сейчас пробую твой код, не работает, вернее если запускать вручную, то работает, а по таймеру нет.

а ты точно ждал в течении 5-6 минут? :D
Закомментируй NoLog и смотри лог, что там?
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Postby -=A=- » Fri, 18 May 2007, 18:21

Ждал, не дождался, потом для верности выставил 2 минуты с тем же результатом. Сейчас попробую с логом.
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

Postby -=A=- » Fri, 18 May 2007, 18:55

А ничего в логе, ничего до тех пор, пока не вырезаю из скрипта:

Code: Select all
Rule: USERNAME S" SYSTEM" COMPARE 0=


после того, как вырезаю, задача начинает работать и писать в лог.

Получается, что сравнение "текущее имя пользователя не равно SYSTEM" не отрабатывается или вообще не позволяет задаче запускаться. Странно...
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

Postby -=A=- » Fri, 18 May 2007, 19:20

Я решил проверить работоспособность твоего правила и создал отдельную задачу:

Code: Select all
NoLog
Rule: USERNAME S" SYSTEM" COMPARE 0= 
Action:
TMSG: "НЕ РАВНО!" 5


Задача отработала, но не с моим сообщением, а с сообщением:

Ошибка в RULE:. Error # - 1073741819
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

Postby makrus » Fri, 18 May 2007, 19:20

-=A=-
ну попробуй тогда эту проверку из шапки задачи в тело перенести, а текущее содержимое тела задачи помести в IF сюда THEN
PS а ось какая? версия nnCron'а?
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Postby -=A=- » Fri, 18 May 2007, 19:48

Не понял честно говоря что и куда поместить.
Ось XP SP2 обновки в полном комплекте
nnCron v.1.91 Build 1083
Проверку переносить после "Action:" пробовал, результат тот же.
Смотри мою отдельную тестовую задачу, она не работает, а там ничего лишнего.
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

Postby makrus » Fri, 18 May 2007, 21:03

-=A=-
не знаю, у меня на Win2K не ругается...
попробуй следующие варианты:
Вариант 1
Code: Select all
#( MyProgram_ONLINE
Time: */5
\ NoLog
AsLoggedUser
Rule: USERNAME S" SYSTEM" COMPARE \ 0=
Action:
TMSG: "Задача отработала" 15
)#
Вариант 2
Code: Select all
#( MyProgram_ONLINE
Time: */5
\ NoLog
AsLoggedUser
Rule: S" %USERNAME%" S" SYSTEM" COMPARE 0=
Action:
TMSG: "Задача отработала" 15
)#
Вариант 3
Code: Select all
#( MyProgram_ONLINE
Time: */5
\ NoLog
AsLoggedUser
Action:
USERNAME S" SYSTEM" COMPARE 0=
IF
  TMSG: "Задача отработала" 15
ELSE
  TMSG: "Все равно отработала" 15
THEN
)#
чё говорит?
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Postby -=A=- » Sat, 19 May 2007, 00:17

1. "Задача отработала" слеш как-то спасает?
2. Тишина и покой, задача не отрабатывается.
3. "Все равно отработала" :-)

Я верно понял
Вариант 1. Условие: Имя_Юзера НЕ SYSTEM? (зачем слеш перед 0= ?)
Вариант 2. Условие: (пробуешь системную переменную %USERNAME%) не работает
Вариант 3. Условие: скидываем проверку в Action: где она тоже нефига не работает?

Т.е. если я верно понял, правильно работает только вариант 1(поправь, еслиошибаюсь), но этот \ перед 0= меня смущает(закоментирован вариант NOT(0=)?) :-).
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

Postby -=A=- » Sat, 19 May 2007, 00:25

Кстати, вот такая конструкция 4:

Code: Select all
#( MyProgram_ONLINE
Time: */5
\ NoLog
AsLoggedUser
Action:
USERNAME S" SYSTEM" COMPARE \ 0=
IF
  TMSG: "Задача отработала" 15
ELSE
  TMSG: "Все равно отработала" 15
THEN
)#


Дала "Задача отработала" :roll:
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

Postby makrus » Sat, 19 May 2007, 05:10

-=A=-
Хмм, всё интереснее и интереснее...
1. У тебя уже не ругается: "Ошибка в RULE:. Error # - 1073741819"? Выкладывай задачи полностью от #( до )#
2. Слеш перед 0= делает его комментарием, а это значит...
3. Это значит ты работаешь от имени учетной записи "SYSTEM"!
4. Ты случайно не создавал учётную запись с именем SYSTEM?
5. Поэтому, то что "тишина и покой" в Варианте2 - это нормально, и "Все равно отработала" в Варианте3 - тоже нормально.
6. Есть возможность поэксперементировать из-под другой учетной записи?
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Postby -=A=- » Sat, 19 May 2007, 12:53

Вот и мне уже интересно.
1. При варианте задачи:

Code: Select all
#( TEST1
Time: */2
\ NoLog
AsLoggedUser
Action:
USERNAME S" SYSTEM" COMPARE \ 0=
IF
  TMSG: "Задача отработала" 15
ELSE
  TMSG: "Все равно отработала" 15
THEN
)#


не ругается и при

Code: Select all
#( TEST1
Time: */2
\ NoLog
AsLoggedUser
Action:
USERNAME S" SYSTEM" COMPARE
IF
  TMSG: "Задача отработала" 15
ELSE
  TMSG: "Все равно отработала" 15
THEN
)#


не ругается, сообщения только разные.

Но при:

Code: Select all
#( TEST1
Time: */2
NoLog
Rule: USERNAME S" SYSTEM" COMPARE / 0=
Action:
TMSG: "НЕ РАВНО!" 5
)#


ругается, Ошибка стека в Rule: :roll: , а при:

Code: Select all
#( TEST1
Time: */2
NoLog
Rule: USERNAME S" SYSTEM" COMPARE 0=
Action:
TMSG: "НЕ РАВНО!" 5
)#


тишина и покой ничего не происходит, не работает. :roll:

2. Под учеткой SYSTEM я естественно не работаю и конечно не создавал такой учетки. Часть процесов естественно стартуют с системными правами, может просто крон на моей машине считает что "SYSTEM" или к примеру "LOCAL SERVICE" или "NETWORK SERVICE" это залогинившиеся юзеры?

3. Учеток можно наваять вагон, но что поменяется, она и сейчас не "SYSTEM"
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

Postby -=A=- » Sat, 19 May 2007, 13:55

И вот, что ещё интересно, вот такой вариант:

Code: Select all
#( MyProgram_ONLINE
Time: */2  * * * * *
AsLoggedUser
: Inet?  ( -- ? )
HOST-EXIST: "www.rambler.ru"
HOST-EXIST: "www.google.com"
HOST-EXIST: "www.ya.ru"
OR OR

Rule: USERNAME S" SYSTEM" COMPARE
Action:
PROC-EXIST: "MyProgram.exe" 0=
IF
  Inet? 
  IF
    START-APP: C:\Program Files\MyProgram.exe   
  THEN
ELSE
  Inet? 0= 
  IF
    SWHide
    START-APPW: taskkill.exe /IM "MyProgram.exe" /F /T
    PAUSE: 1000 TRAY-REFRESH
  THEN
THEN
)#


работает. И причем работает как нужно, т.е. если машина ребутнулась, никто не логинился и есть инет(а он есть) ничего не происходит, т.е. софтина под дефаултюзером не запускается. Если минут через 10 залогинится, то софтина стартует под залогинившимся юзером, как и нужно. Но при этом в скрипте:

Code: Select all
Rule: USERNAME S" SYSTEM" COMPARE


а не:

Code: Select all
Rule: USERNAME S" SYSTEM" COMPARE 0=


что уже совсем забавно.
-=A=-
 
Posts: 22
Joined: Fri, 04 May 2007, 18:43

PreviousNext

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 1 guest

cron