Как зациклить выполнение скрипта rasdial? {Решен} #428559


#0 by Гений 1С
Написал небольшой скрипт: :again rasdial SkyLink goto again Но когда я запускаю окно, даже если оно свернуто, курсор начинает дрожать, очевидно из-за выполнения CMD в цикле. Может быть, переписать на JS-файл, тогда мигать не будет. Можно еще как-то паузу в cmd-файл вставлять? подскажите, как паузу и вызов задания в JS выполнять? просто у меня в типовых настройках соединения ограниченное число попыток, иногда прерывается на ночь работа. А в планировщике неудобно - мне надо не всегда восстанавливать соединение а только когда я запущу пакетник.
#1 by ДенисЧ
WShell.Sleep
#2 by Гений 1С
Сделал так: while(true) {    var Myshell = new ActiveXObject("WScript.Shell");    Myshell.Run("rasdial SkyLink",0,1); } Окно запуска не выводится, но курсор мигает... Как избавиться от мигания курсора?
#3 by Гений 1С
Выдает ошибку, что нет такого метода: while(true) {    var Myshell = new ActiveXObject("WScript.Shell");    Myshell.Run("rasdial SkyLink",0,1);    Myshell.Sleep; }
#4 by ДенисЧ
Ну опечатался я... WScript.Sleep Или тебя гугель ещё не разбанил?
#5 by Гений 1С
поясни плиз по человечески. хотя все равно важнее вопрос про мигание курсора
#6 by Гений 1С
Ах да, задержка работает: WScript.sleep ; 200 - это в чем, в милисекундах? т.е. 1000 - это 1 секунда?
#7 by ДенисЧ
Как мигание убрать - я не знаю. Да.
#8 by Гений 1С
а почему окно JS невидимо, только можно убить его в WScript? можно как-то показать окно приложения JS?
#9 by ДенисЧ
У него нет окна :-) Как ты его запускаешь?
#10 by Гений 1С
Просто из тотал командера запускаю файл JS. А как мне его тогда прервать. ПОставил задержку в 5 минут, по идее этого достаточно, чтобы восстанавливать коннект..
#11 by smaharbA
var Myshell = new ActiveXObject("WScript.Shell"); while(true) {   rez=Myshell.Run("ping -n 1 www.yandex.ru");   if (rez != 0) {       Myshell.Run("rasdial SkyLink",0,1);       }   Myshell.Sleep(1000); }
#12 by smaharbA
вернее var Myshell = new ActiveXObject("WScript.Shell"); while(true) {  rez=Myshell.Run("ping -n 1 www.yandex.ru",0,true);  if (rez != 0) {      Myshell.Run("rasdial SkyLink",0,true);      }  Myshell.Sleep(1000); }
#13 by ДенисЧ
Набери cscript твой.js
#14 by smaharbA
var Myshell = new ActiveXObject("WScript.Shell"); while(true) {  rez=Myshell.Run("ping -n 1 www.yandex.ru");  if (rez != 0) {      Myshell.Run("rasdial SkyLink",0,1);      }  else {      WScript.Quit;      }  Myshell.Sleep(1000); }
#15 by Megas
Ping 127.0.0.1 -(не помню параметр ) число раз ... 1 пинг = 1 секунда =)
#16 by Гений 1С
всем пасиба... rasloop.js: var Myshell = new ActiveXObject("WScript.Shell"); while(true) {    rez=Myshell.Run("ping -n 1 www.yandex.ru",0,true);    if (rez != 0) {         Myshell.Run("rasdial SkyLink /DISCONNECT",0,true);         Myshell.Run("rasdial SkyLink",0,true);    }    WScript.sleep (1*60*1000); } rasloop.cmd: cscript rasloop.js Таперича бы еще как нибудь иконку у запущенного приложения rasloop.cmd поменять, чтобы было видно что это коннектор. Подскажите еще один вопрос. JS будет ждать завершения команды, да. 0, true - это невидимое и ждать завершения, так?
#17 by ДенисЧ
Ярлык создай и меняй в нём икону, как хочешь
#18 by Гений 1С
и что, иконка приложения тоже будет меняться? счас попробую
#19 by Гений 1С
Спасибо, получилось...
#20 by Гений 1С
Окончательно: var Myshell = new ActiveXObject("WScript.Shell"); while(true) {    var d = new Date;    var nMonth = d.getMonth+1;    var nDate = d.getDate;    var nHours = d.getHours;    var nMinutes = d.getMinutes;    var nSeconds = d.getSeconds;    var nMilliseconds = d.getMilliseconds;    // YYYY-MM-DD (HH.NN.SS);    var sTimeStamp = ''    +d.getFullYear+'-'    +((nMonth<10)?"0"+nMonth: nMonth)+'-'    +((nDate<10) ? "0"+nDate : nDate)+' ('    +((nHours<10) ? "0"+nHours : nHours)+'.'    +((nMinutes<10) ? "0"+nMinutes : nMinutes)+'.'    +((nSeconds<10) ?    "0"+nSeconds : nSeconds)+')';    rez=Myshell.Run("ping -n 1 www.yandex.ru",0,true);    if (rez != 0) {         WScript.Echo(sTimeStamp + "   offline, try to reconnect");         Myshell.Run("rasdial SkyLink /DISCONNECT",0,true); //Disconnect         Myshell.Run("rasdial SkyLink mobile mobile",0,true); //Connect with login & password         WScript.Echo("Reconnected");    } else {        WScript.Echo(sTimeStamp + "   test connection - OK");            WScript.sleep (3*60*1000); //wait a minutes for next try    } }
#21 by Ковычки
теперь сделай защиту от двойного и более запуска
#22 by Гений 1С
да ну нах, я и так вижу иконку запущенного приложения
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С