Отправка SMS на сотовые телефоны клиентов
Сохранить в файлеОбсудить в форуме
Описание
Возможный способ отправки SMS на РСЛ
Текст примера
/*******************************************/ /*Отправка SMS на сотовые телефоны клиентов*/ /*Через HTML-страницу. InternetExplorer. */ /*Только для 3-х звенки! */ /*******************************************/ import lgxse; array urls,macs; urls(0)="http://www.nwgsm.com/sendsms.htm"; urls(1)="http://www.vcc.kirov.ru/sms.html"; urls(2)="http://www.mts.ru/sms/"; /* urls(0)="k:\\grig\\nwgsm.htm"; urls(1)="k:\\grig\\vcc.htm"; urls(2)="k:\\grig\\mts.htm"; */ macs(0)="f_NWGSM"; /*Северо-Западный GSM*/ macs(1)="f_VCC"; /*Вятская сотовая сеть*/ macs(2)="f_MTS"; /*МТС*/ CountDoC=0; URL=""; ERROR=false; TERROR=""; ie=NULL; WorkComplete=false; Provider=0; NTel="+78332491986"; TextMsg="1DTB SMSinfo"; /*Пауза*/ macro f_Pause(pause) while(pause>0) pause=pause-1; TestEvent(1); end; end; /*Заполняем форму и отправляем результат*/ /*Северо-западный GSM*/ macro f_NWGSM() ad=ie.Document; form=ad.Forms(0); elements=form.Elements; count=elements.length; /*создаем указатели на нужные элементы*/ Phone=null; Russian=null; Now=null; Msg=null; Send=null; i=0; while(i<count) element=elements.Item(i); name=StrLwr(element.Name); if(name=="tll") Phone=element; end; if(name=="co") Russian=element; end; if(name=="so") Now=element; end; if(name=="txt") Msg=element; end; if(name=="send") Send=element; end; element=null; i=i+1; end; if(valtype(Phone)*valtype(Russian)*valtype(Now)*valtype(Msg)*valtype(Send)==0) ERROR=true; TERROR="Ошибка! Структура страница изменилась!"; return; end; Phone.Value=NTel; Russian.Checked=false; Now.Checked=false; Msg.Value=TextMsg; Send.Click; end; /*Заполняем форму и отправляем результат*/ /*Вятская сотовая*/ macro f_vcc() ad=ie.Document; form=ad.Forms(0); elements=form.Elements; count=elements.length; /*создаем указатели на нужные элементы*/ Phone=null; Msg=null; Send=null; i=0; while(i<count) element=elements.Item(i); name=StrLwr(element.Name); if(name=="subj") Phone=element; end; if(name=="msg") Msg=element; end; if((name=="c") and (StrLwr(element.Value)=="отправить сообщение")) Send=element; end; element=null; i=i+1; end; if(valtype(Phone)*valtype(Msg)*valtype(Send)==0) ERROR=true; TERROR="Ошибка! Структура страница изменилась!"; return; end; Phone.Value=NTel; Msg.Value=TextMsg; Send.Click; end; /*Заполняем форму и отправляем результат*/ /*MTS*/ macro f_MTS() ad=ie.Document; form=ad.Forms(1); elements=form.Elements; count=elements.length; /*создаем указатели на нужные элементы*/ Phone=null; Msg=null; Send=null; i=0; while(i<count) element=elements.Item(i); name=StrLwr(element.Name); if(name=="to") Phone=element; end; if(name=="msg") Msg=element; end; if((name=="c") and (StrLwr(element.Value)=="отправить")) Send=element; end; element=null; i=i+1; end; if(valtype(Phone)*valtype(Msg)*valtype(Send)==0) ERROR=true; TERROR="Ошибка! Структура страница изменилась!"; return; end; Phone.Value=NTel; Msg.Value=TextMsg; Send.Click; end; /*Открываем InternerExplorer*/ macro CreateIE() /*создаем и визуализируем объект*/ ie=TlgActiveX("InternetExplorer.Application",true); ie.Visible=true; /*создаем объект-перехватчик интерфейса WebBrowser*/ res=lgNewHandlerObject(ie,"WebBrowser"); if(not res) TERROR="Не прошел перехват событий от InternetExplorer"; ERROR=true; return; end; /*задаем макрообработчик события*/ res=lgSetHandlerEvent(ie,"DocumentComplete","DocumentComplete"); if(not res) TERROR="Не прошел перехват события DocumentComplete"; ERROR=true; return; end; end; macro DocumentComplete(Sender,ObjUrl) CountDoC=CountDoc+1; /*заполнять форму нужно только для первого документа*/ if((CountDoC==1) and (StrUpr(ObjUrl)==StrUpr(URL))) execmacro(macs(Provider)); else /*отрабатываем ошибку загрузки URL и успешный результат*/ if((valtype(ObjUrl)==V_STRING) and (index(StrUpr(ObjUrl),"ERROR")>0)) TERROR=ObjUrl; ERROR=true; return; elif(StrUpr(ObjUrl)==StrUpr(URL)) /*игнорируем повторные события базовой страницы*/ return; else /*успешно отработали*/ WorkComplete=true; return; end; end; end; /*Навигация на нужную страницу*/ macro f_Navigate() ie.Navigate(URL); /*переходим на базовую страничку*/ /*пока нет ошибок и работа не выполнена - слушаем события*/ key=0; while((key!=32) and (not ERROR) and (not WorkComplete)) lgxCheckEvents(); key=TestEvent(1); end; /* if(key==32) cont=false; GetTrue(cont,"Прервать работу?"); if(cont) if(valtype(ie)==V_GENOBJ) ie.Quit; ie=null; end; exit(0); end; end; */ end; /*Основная функция*/ /*на входе - номер провайдера, в глобальной переменной NTel - номер телефона, в глобальной переменной TextMsg - текст сообщения*/ macro SendSMS(prov) CountDoC=0; ERROR=false; TERROR=""; WorkComplete=false; LocalCreate=false; /*создаем объект InternetExplorer*/ if(valtype(ie)!=V_GENOBJ) CreateIE(); LocalCreate=true; end; Provider=prov; URL=urls(Provider); ie.Visible=true; f_Navigate(); if(ERROR) println("ОШИБКА!!!"); println(URL); println(TERROR); end; /*ie.Visible=false;*/ if(LocalCreate and (valtype(ie)==V_GENOBJ)) ie.Quit; ie=null; end; return TERROR; end; /* SendSMS(0);*/ end;