<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: получаем баланс мобильников МТС]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2204&amp;type=atom" />
	<updated>2008-10-20T11:04:24Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=2204</id>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: получаем баланс мобильников МТС]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=14931#p14931" />
			<content type="html"><![CDATA[<p>МТС на титульной странице интернет-помощника добавили галочку &quot;я ознакомлен с пользовательским соглашением&quot;, поэтому в скрипт необходимо добавить одну строчку<br />перед:<br /></p><div class="codebox"><pre><code> objForm.elements(&quot;ctl00_phContent_btnEnter&quot;).click</code></pre></div><p>добавить строку, чтобы получилось в итоге:<br /></p><div class="codebox"><pre><code> objForm.elements(&quot;ctl00_phContent_cbAgreement&quot;).click
 objForm.elements(&quot;ctl00_phContent_btnEnter&quot;).click</code></pre></div>]]></content>
			<author>
				<name><![CDATA[sandy00]]></name>
			</author>
			<updated>2008-10-20T11:04:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=14931#p14931</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBScript: получаем баланс мобильников МТС]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=13798#p13798" />
			<content type="html"><![CDATA[<p>Есть несколько (много) мобильников МТС, на всех включена ИССА (Интернет-Помощник МТС). Задача - получать с них баланс, желательно не мучаясь с вводом множественных телефонов и паролей.<br />Вводный файл - phones.txt, выглядит примерно так:<br /></p><div class="quotebox"><blockquote><p>имя&nbsp; &nbsp; &nbsp; &nbsp;номер телефона&nbsp; &nbsp; пароль<br />-----------------------------------<br />телефон1&nbsp; &nbsp;+79111234567&nbsp; &nbsp; &nbsp;1234567<br />телефон2&nbsp; &nbsp;+79111234567&nbsp; &nbsp; &nbsp;1234567</p></blockquote></div><p>В теле phones.txt допустимы как пустые строки, так и строки с произвольным текстом, пока в них не встречается объект, похожий на телефонный номер (начало на +7 и длина номера - задаётся в скрипте). Разделители - пробелы, причем их может быть любое количество между &quot;полями&quot;. Также, после пароля, через пробел может идти любой текст, например pin-коды и другие комментарии.<br />Собственно, сам скрипт, balance.vbs, выводит информацию в новое окно IE:<br /></p><div class="codebox"><pre><code>Const PhonePrefix = &quot;+7&quot;      &#039; +7...
PhoneLen = 12                 &#039; полная длина телефонного номера
PrefixLen = Len(PhonePrefix)  &#039; = 2

&#039;PrefixLen = 0               &#039; установить, если в форму надо вводить полный номер телефона (с +7)

Const Curr = &quot; руб.&quot;

Const ForReading = 1
Const ForWriting = 2

Function GetBalance(phone, password, balance)
 Set objIE = CreateObject(&quot;InternetExplorer.Application&quot;)
 objIE.Visible = False
 &#039;objIE.Navigate &quot;https://www.spb.mts.ru/selfcare/&quot; &#039; МТС Санкт-Петербург
 objIE.Navigate &quot;https://ihelper.mts.ru/selfcare/&quot; &#039; МТС Москва
 While objIE.Busy
    WScript.Sleep 10
 Wend
 Set objForm = objIE.Document.forms(&quot;aspnetForm&quot;)
 objForm.elements(&quot;ctl00$phContent$tbPhoneNumber&quot;).value = phone
 objForm.elements(&quot;ctl00$phContent$tbPassword&quot;).value = password
 objForm.elements(&quot;ctl00_phContent_btnEnter&quot;).click

 While objIE.Busy
    WScript.Sleep 10
 Wend

 Set objForm = objIE.Document.forms(&quot;aspnetForm&quot;)

 balance = objForm.elements.all(&quot;customer-info-balance&quot;).InnerHTML
 objIE.quit

End Function

Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set PhoneFile = objFSO.OpenTextFile(&quot;phones.txt&quot;, ForReading)

Set objExplorer = CreateObject(&quot;InternetExplorer.Application&quot;)
objExplorer.Navigate &quot;about:blank&quot;   
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width = 300
objExplorer.Height = 400
objExplorer.Left = 0
objExplorer.Top = 0

Do While (objExplorer.Busy)
    Wscript.Sleep 10
Loop    

objExplorer.Document.Title = &quot;Balance Information&quot;   
objExplorer.Visible = 1  
objExplorer.Document.Body.InnerHTML = &quot;&quot;

With PhoneFile
    Do Until .AtEndOfStream
        strLine = .ReadLine
        If (Trim(strLine) &lt;&gt; &quot;&quot;)  and (Instr(strLine,PhonePrefix) &gt; 0) Then
           alias = mid(strline,1,Instr(strLine,PhonePrefix)-1)                   &#039; название телефона
           tmp = mid(strline,Instr(strLine,&quot;+7&quot;)+PrefixLen,255)                  &#039; эта строка начинается с номера телефона (без +7)
           phone = mid(tmp,1,Instr(tmp,&quot; &quot;)-1)                                   &#039; телефон тут (без +7)
           tmp = Trim(mid(strline,Len(alias) + Len(phone) + 1 + PrefixLen,255))  &#039; эта строка начинается с пароля
           pass = Trim(mid(tmp,1,Instr(tmp,&quot; &quot;))) &#039; если после пароля еще есть пробелы - отделим их
           if pass = &quot;&quot; Then                      &#039; если нету - и не надо...
             pass = tmp
           End If 

           alias = Trim(alias)                    &#039; обрезаем пробелы

&#039;           wscript.echo alias &amp; &quot;:&quot; &amp; phone&amp; &quot;:&quot; &amp; pass &amp; &quot;:&quot;   &#039; ****************** отладка
           If (Len(phone) = PhoneLen - PrefixLen) Then
              Call GetBalance(phone,pass, sum)
              objExplorer.Document.Body.InnerHTML = objExplorer.Document.Body.InnerHTML &amp; &quot;&lt;B&gt;&quot; &amp; alias &amp; &quot;&lt;/B&gt;&quot; &amp; &quot;: &quot; &amp; sum &amp; Curr &amp; &quot;&lt;BR&gt;&quot;
&#039;              wscript.echo alias &amp; &quot;:&quot; &amp; phone &amp; &quot;:&quot; &amp; sum  &#039; ****************** отладка
           End If
        End If
    Loop
    
    .Close
End With

objExplorer.Document.Body.InnerHTML = objExplorer.Document.Body.InnerHTML &amp; &quot;&lt;BR&gt;&lt;B&gt;OK&lt;/B&gt;&quot;</code></pre></div><p>Москва и Санкт-Петербург отличаются только одним URL (см. текст скрипта).<br />Автор скрипта - <strong>sandy00</strong>.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2008-09-04T06:22:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=13798#p13798</id>
		</entry>
</feed>
