Без проблем. Но только глянуть, работать не будет так как ориентирован на конкретные условия.
Cоветую смотреть с помощью подвсветки синтаксиса.
редактор файл синтаксиса в противном случае будет рудно разобраться.
Будут вопросы, спрашивай.
[more=Скрипт...]
/////////////////////////////////////////////////////////////////////////////////////////////////////
; скрипт проверки обновлений
; проверка разрешено ли соединение
if(toggle_for_checkupdate == "off")do
quit
elseif(dialupname == "isp") and (modem == "1")do
quit
elseif(dialupname != "") and (modem == "0")do
quit
elseif(dialupname != "") and (modem == "1")do
quit
endif
; сброс переменных
cntr = "xx"
counter2 = "xx"
END_e = "xx"
END_i = "xx"
E_checkdata = "xx"
E_COMPLETED = "xx"
e_DATA = "xx"
E_file = "xx"
E_fl_size = "xx"
E_log_data = "xx"
E_log_result = "xx"
E_message = "xx"
E_PHRASE = "xx"
E_sHABLON = "xx"
E_srch_result = "xx"
I_checkdata = "xx"
I_COMPLETED = "xx"
i_DATA = "xx"
I_file = "xx"
I_fl_size = "xx"
I_log_data = "xx"
I_log_result = "xx"
I_message = "xx"
i_PHRASE = "xx"
i_SHABLON = "xx"
I_srch_result = "xx"
mpDlgCaption = "xx"
mpDlgText = "xx"
report = "xx"
sOutput = "xx"
START_e = "xx"
START_i = "xx"
sum_COMPLETED = "xx"
ini_save = "xx"
reg_save = "xx"
AFD_INI = "xx"
START_ini_strng = "xx"
END_ini_word = "xx"
ini_WORD = "xx"
workin_ini = "xx"
recover_reg = "xx"
recover_ini = "xx"
; соединение
; проверка состояния соединения
cntr = "0"
@redial
if(cntr == "1")do
*bar show checkupdate
MiscPlugin.Sleep("1")
cl.SetLabel("checkupdate", 0, "")
cl.SetLabel("checkupdate", 2, "")
cl.SetLabel("checkupdate", 4, "")
MiscPlugin.Sleep("1")
cl.SetWidth("checkupdate", 0, 1)
MiscPlugin.Sleep("1")
cl.SetHeight("checkupdate", 0, 1)
cl.SetHeight("checkupdate", 2, 1)
cl.SetHeight("checkupdate", 4, 1)
MiscPlugin.Sleep("1")
cl.SetTextColor("checkupdate", 0, 12632256 )
cl.SetTextColor("checkupdate", 2, 12632256 )
cl.SetTextColor("checkupdate", 4, 12632256 )
MiscPlugin.Sleep("1")
cl.SetBackColor("checkupdate", 0, 12632256)
cl.SetBackColor("checkupdate", 2, 12632256)
cl.SetBackColor("checkupdate", 4, 12632256)
MiscPlugin.Sleep("1")
win.ontop("checkupdate")
MiscPlugin.Sleep("1")
cl.refresh("checkupdate")
MiscPlugin.Sleep("1")
win.move("checkupdate",1,836)
MiscPlugin.Sleep("10")
cl.refresh("checkupdate")
*bar hide checkupdate
jump dialer_hangup_wait
endif
; ONLINE переход к скачиванию
if(dialupname != "isp") and (modem == "1")do
message 5 online *takefocus
do("c:\\Program Files\\nnCron\\manualhang.lnk")
jump script2
; OFFLINE
elseif(modem == "0") and (dialupname != "")do
message 5 some connection active *takefocus
quit
endif
; сохранение и устаноывка параметров модема и диалера
; получить
reg_save = reg.get_string(?"HKLM\System\CurrentControlSet\Services\Class\Modem\0000\UserInit")
ini_save = file.readall("c:\\Program Files\\alexdialer\\afd.ini")
; сохранить
file.writeall("d:\\checkupdate_reg.tmp",reg_save)
file.writeall("d:\\checkupdate_dialer_ini.tmp",ini_save)
MiscPlugin.Sleep("10")
; установить
reg.set_string(?"HKLM\System\CurrentControlSet\Services\Class\Modem\0000\UserInit" , "at+MS=11,1,300,33600,,,33600 s6=1 s7=50 s8=1 s10=14 &p1 s91=15 m0")
AFD_INI = file.readall("c:\\Program Files\\alexdialer\\afd.ini")
START_ini_word = index(AFD_INI,"RedialWhenHangUp=")
END_ini_word = START_ini_word + 17
ini_WORD = select(AFD_INI,START_ini_word,END_ini_word)
workin_ini = replacechars(AFD_INI,ini_WORD,"RedialWhenHangUp=0")
file.writeall("c:\\Program Files\\alexdialer\\afd.ini",workin_ini)
; дозвон
; сообщение о дозвоне
*BAR SHOW CHECKUPDATE
MiscPlugin.Sleep("1")
cl.SetLabel("checkupdate", 0, "dialing")
MiscPlugin.Sleep("1")
cl.SetWidth("checkupdate", 0, 50)
MiscPlugin.Sleep("1")
cl.SetHeight("checkupdate", 0, 30)
MiscPlugin.Sleep("1")
cl.SetTextColor("checkupdate", 0, 0 )
MiscPlugin.Sleep("1")
cl.SetBackColor("checkupdate", 0, 65535 )
MiscPlugin.Sleep("1")
win.ontop("checkupdate")
MiscPlugin.Sleep("1")
cl.refresh("checkupdate")
MiscPlugin.Sleep("1")
win.move("checkupdate",0,838)
MiscPlugin.Sleep("10")
cl.refresh("checkupdate")
; разрыв соедиения на всякий случай
DO("c:\\Program Files\\PowerPro\\dunhang.exe","*","c:\\Program Files\\PowerPro\\","hidden")
window.close_("*Connect To*")
; дозвон
DO("c:\\Program Files\\PowerPro\\dundial.exe","isp login pass","c:\\Program Files\\PowerPro\\","hidden")
MiscPlugin.Sleep("50")
wait.for(40000 , modem == "1")
if(modem == "1")do
do("c:\\Program Files\\nnCron\\manualhang.lnk")
jump script2
elseif(modem == "0")do
*bar show checkupdate
MiscPlugin.Sleep("1")
cl.SetLabel("checkupdate", 0, "redial")
MiscPlugin.Sleep("1")
cl.SetWidth("checkupdate", 0, 50)
MiscPlugin.Sleep("1")
cl.SetHeight("checkupdate", 0, 30)
MiscPlugin.Sleep("1")
cl.SetTextColor("checkupdate", 0, 0 )
MiscPlugin.Sleep("1")
cl.SetBackColor("checkupdate", 0, 13553407)
MiscPlugin.Sleep("1")
win.ontop("checkupdate")
MiscPlugin.Sleep("1")
cl.refresh("checkupdate")
MiscPlugin.Sleep("1")
win.move("checkupdate",0,838)
cl.refresh("checkupdate")
DO("c:\\Program Files\\PowerPro\\dunhang.exe","*","c:\\Program Files\\PowerPro\\","hidden")
window.close_("*Connect To*")
counter2 = "0"
@handupwait
if(counter2 == "100")do
message 5 time exceeded *takefocus
quit
elseif(dialupname == "")do
; счётчик
cntr = cntr + 1
jump redial
elseif(dialupname != "")do
MiscPlugin.Sleep("100")
counter2 = counter2 + 1
jump handupwait
endif
endif
; скрипт 2
@script2
; скачивание .
; сообщение о скачивании
*bar show checkupdate
MiscPlugin.Sleep("1")
cl.SetLabel("checkupdate", 0, "transfer")
MiscPlugin.Sleep("1")
cl.SetWidth("checkupdate", 0, 50)
MiscPlugin.Sleep("1")
cl.SetHeight("checkupdate", 0, 30)
MiscPlugin.Sleep("1")
cl.SetTextColor("checkupdate", 0, 0 )
MiscPlugin.Sleep("1")
cl.SetBackColor("checkupdate", 0, 16252137 )
MiscPlugin.Sleep("1")
win.ontop("checkupdate")
MiscPlugin.Sleep("1")
cl.refresh("checkupdate")
MiscPlugin.Sleep("1")
win.move("checkupdate",0,838)
cl.refresh("checkupdate")
; очистка переменных
sum_COMPLETED = "0"
I_COMPLETED = "0"
E_COMPLETED = "0"
file.delete("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\e.htm")
file.delete("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\i.htm")
file.runcallback("0", "I_COMPLETED = 1", "c:/Program Files/PowerPro/SCRIPTS/checkupd/wget.exe", "-o i.log -O i.htm
http://idealab.ru", "c:/Program Files/PowerPro/SCRIPTS/checkupd/","hidden")
MiscPlugin.Sleep("10")
file.runcallback("0", "E_COMPLETED = 1", "c:/Program Files/PowerPro/SCRIPTS/checkupd/2wget.exe", "-o e.log -O e.htm
http://e-generator.ru", "c:/Program Files/PowerPro/SCRIPTS/checkupd/","hidden")
; ожидание завершения процесса
@load
if(sum_COMPLETED == "2")do
jump loadexit
elseif(sum_COMPLETED != "2")do
endif
MiscPlugin.Sleep("100")
sum_COMPLETED = I_COMPLETED + E_COMPLETED
jump load
@loadexit
;====================вызов скрипта проверки файлов
*bar show checkupdate
MiscPlugin.Sleep("1")
cl.SetLabel("checkupdate", 0, "")
cl.SetLabel("checkupdate", 2, "")
cl.SetLabel("checkupdate", 4, "")
MiscPlugin.Sleep("1")
cl.SetWidth("checkupdate", 0, 1)
MiscPlugin.Sleep("1")
cl.SetHeight("checkupdate", 0, 1)
cl.SetHeight("checkupdate", 2, 1)
cl.SetHeight("checkupdate", 4, 1)
MiscPlugin.Sleep("1")
cl.SetTextColor("checkupdate", 0, 12632256 )
cl.SetTextColor("checkupdate", 2, 12632256 )
cl.SetTextColor("checkupdate", 4, 12632256 )
MiscPlugin.Sleep("1")
cl.SetBackColor("checkupdate", 0, 12632256)
cl.SetBackColor("checkupdate", 2, 12632256)
cl.SetBackColor("checkupdate", 4, 12632256)
MiscPlugin.Sleep("1")
win.ontop("checkupdate")
MiscPlugin.Sleep("1")
cl.refresh("checkupdate")
MiscPlugin.Sleep("1")
win.move("checkupdate",1,836)
MiscPlugin.Sleep("10")
cl.refresh("checkupdate")
*bar hide checkupdate
jump script3
; скрипт 3
@script3
; ПРОВЕРКА СКАЧАННЫХ ФАЙЛОВ .
; e-generator .
E_fl_size = file.size("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\e.htm")
E_log_data = file.readall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\e.log")
E_log_result = index(E_log_data,"error")
; файл нулевой
if(E_fl_size == "0")do
E_checkdata = "error"
; файл неполный
elseif(E_fl_size != "0") and (E_log_result != "0")do
E_file = file.readall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\e.htm")
E_srch_result = index(E_file,"(Идей:")
; файл неполный и непригоден для проверки
iF(E_srch_result == "0")do
E_checkdata = "error"
; файл неполный но пригоден для проверки
elseif(E_srch_result != "0")do
E_checkdata = "ok"
endif
; файл здорофф
elseif(E_fl_size != "0") and (E_log_result == "0")do
E_checkdata = "ok"
endif
; idealab
I_fl_size = file.size("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\i.htm")
I_log_data = file.readall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\i.log")
I_log_result = index(I_log_data,"error")
; файл нулевой
if(I_fl_size == "0")do
I_checkdata = "error"
; файл неполный
elseif(I_fl_size != "0") and (I_log_result != "0")do
I_file = file.readall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\i.htm")
I_srch_result = index(I_file,"</div><table><tr><td></td></tr></table><div")
; файл неполный и непригоден для проверки
IF(I_srch_result == "0")do
I_checkdata = "error"
; файл неполный но пригоден для проверки
elseif(I_srch_result != "0")do
I_checkdata = "ok"
endif
; файл здоров
elseif(I_fl_size != "0") and (I_log_result == "0")do
I_checkdata = "ok"
endif
; переход к проверки на обновление
jump script4
; скрипт 4
@script4
; проверка обновлений
if(E_checkdata == "ok")do
; проверка e-generatora
; назначем текст в переменную
e_DATA = file.readall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\e.htm")
; ищем начало обновлённого элемента
START_e = index( e_DATA ,"<p class=box><b>заказчик:</b>")
START_e = START_e + 29
; ищем окончание обновлённого элемента
END_e = index( e_DATA ,"(Идей:")
END_e = END_e - 1
; берём фразу
E_PHRASE = select (e_DATA,START_e,END_e)
; сравниваем с фразой из шаблона
E_sHABLON = file.readall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\e.shablon")
if(E_PHRASE == E_sHABLON)do
E_message = "обновлений нет
"
elseif(E_PHRASE != E_sHABLON)do
E_message = "обновления есть
"
file.writeall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\e.shablon" ,E_PHRASE)
endif
elseif(E_checkdata == "error")do
E_message = "ошибка"
endif
if(I_checkdata == "ok")do
; проверка idealab
; назначаем текст в переменную
i_DATA = file.readall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\i.htm")
; ищем начало обновлённого элемента
START_i = index (i_DATA,"<table width=90%><tr><td>")
START_i = START_i + 32
; ищем окончание обновлённого элемента
END_i = index(i_DATA,"</div><table><tr><td></td></tr></table><div")
END_i = END_i - 1
; берём фразу
i_PHRASE = select(i_DATA,START_i,END_i)
;=================== сравниваем с шаблоном
i_SHABLON = file.readall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\i.shablon")
if(i_PHRASE == i_SHABLON)do
I_message = "обновлений нет
"
elseif(i_PHRASE != i_SHABLON)do
I_message = "обновления есть
"
file.writeall("c:\\Program Files\\PowerPro\\SCRIPTS\\checkupd\\i.shablon", i_PHRASE)
endif
elseif(I_checkdata == "error")do
I_message = "ошибка"
endif
*bar hide checkupdate
; ошибка
if(E_message == "ошибка") or (I_message == "ошибка")do
E_err_nfo = ""
I_err_nfo = ""
if(E_message == "ошибка")do
E_err_nfo = "e-gen"
endif
if(I_message == "ошибка")do
I_err_nfo = "idealab"
endif
*bar show checkupdate
MiscPlugin.Sleep("1")
cl.SetLabel("checkupdate", 0, "error")
cl.SetLabel("checkupdate", 2, E_err_nfo)
cl.SetLabel("checkupdate", 4, I_err_nfo)
MiscPlugin.Sleep("1")
cl.SetWidth("checkupdate", 0, 50)
MiscPlugin.Sleep("1")
cl.SetHeight("checkupdate", 0, 8)
cl.SetHeight("checkupdate", 2, 10)
cl.SetHeight("checkupdate", 4, 12)
MiscPlugin.Sleep("1")
cl.SetTextColor("checkupdate", 0, 16777215 )
cl.SetTextColor("checkupdate", 2, 0 )
cl.SetTextColor("checkupdate", 4, 0 )
MiscPlugin.Sleep("1")
cl.SetBackColor("checkupdate", 0, 230)
cl.SetBackColor("checkupdate", 2, 13553407)
cl.SetBackColor("checkupdate", 4, 13553407)
MiscPlugin.Sleep("1")
win.ontop("checkupdate")
MiscPlugin.Sleep("1")
cl.refresh("checkupdate")
MiscPlugin.Sleep("1")
win.move("checkupdate",1,836)
MiscPlugin.Sleep("10")
cl.refresh("checkupdate")
endif
; обновления есть
if(E_message == "обновления есть
") or (I_message == "обновления есть
")do
E_upd_nfo = ""
I_upd_nfo = ""
if(E_message == "обновления есть
")do
E_upd_nfo = "e-generator"
endif
if(I_message == "обновления есть
")do
I_upd_nfo = "idealab"
endif
report = E_upd_nfo ++ I_upd_nfo
message &(report)
DO("c:\\Мои документы\\03nov_2102.mp3")
endif
; завершение и ожидание завершения
distance = "off"
if(dialupname != "isp") and (modem == "1")do
quit
else
DO("c:\\Program Files\\PowerPro\\dunhang.exe","*","c:\\Program Files\\PowerPro\\","hidden")
window.close_("*Connect To*")
counter3 == "0"
@handupwait2
if(dialupname == "") and (mode == "0")do
jump handupwaitEXIT2
elseif(counter3 == "500")do
jump handupwaitEXIT2
elseif(dialupname != "")do
MiscPlugin.Sleep("100")
counter3 = counter3 + 1
jump handupwait2
endif
@handupwaitEXIT2
endif
; ожидание завершения раюоты диалера
@dialer_hangup_wait
if("&-Dial" == MiscPlugin.Get_WindowText("Alexf Dialer" ,4 ,"win=all" , "pump=1"))do
jump dialer_hangup_wait_exit
endif
MiscPlugin.Sleep("500")
jump dialer_hangup_wait
@dialer_hangup_wait_exit
MiscPlugin.Sleep("1000")
; востстановление параметров
recover_ini = file.readall("d:\\checkupdate_dialer_ini.tmp")
MiscPlugin.Sleep("100")
recover_reg = file.readall("d:\\checkupdate_reg.tmp")
;установить
file.writeall("c:\\Program Files\\alexdialer\\afd.ini" , recover_ini)
reg.set_string(?"HKLM\System\CurrentControlSet\Services\Class\Modem\0000\UserInit" , recover_reg)
;установить
MiscPlugin.Sleep("200")
recover_ini = file.readall("d:\\checkupdate_dialer_ini.tmp")
file.writeall("c:\\Program Files\\alexdialer\\afd.ini" , recover_ini)
MiscPlugin.Sleep("200")
file.writeall("c:\\Program Files\\alexdialer\\afd.ini" , recover_ini)
; очистка переменных
cntr = ""
counter2 = ""
END_e = ""
END_i = ""
E_checkdata = ""
E_COMPLETED = ""
e_DATA = ""
E_file = ""
E_fl_size = ""
E_log_data = ""
E_log_result = ""
E_message = ""
E_PHRASE = ""
E_sHABLON = ""
E_srch_result = ""
I_checkdata = ""
I_COMPLETED = ""
i_DATA = ""
I_file = ""
I_fl_size = ""
I_log_data = ""
I_log_result = ""
I_message = ""
i_PHRASE = ""
i_SHABLON = ""
I_srch_result = ""
mpDlgCaption = ""
mpDlgText = ""
report = ""
sOutput = ""
START_e = ""
START_i = ""
sum_COMPLETED = ""
ini_save = ""
reg_save = ""
AFD_INI = ""
START_ini_strng = ""
END_ini_word = ""
ini_WORD = ""
workin_ini = ""
recover_reg = ""
recover_ini = ""
quit
////////////////////////////////////////////////////////////////////////////////////////////////////
[/more]