<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; HTA: Traffic Monitor]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6072</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6072&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «HTA: Traffic Monitor».]]></description>
		<lastBuildDate>Sun, 24 May 2015 18:26:52 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: HTA: Traffic Monitor]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=94170#p94170</link>
			<description><![CDATA[<p>В случае модемного соединения, для учета траффика можно использовать подписку WMI на событие отключения от глобальной сети(WAN) с записью статистики сеанса в протокол.</p><p>Lang.: VBScript<br />ОС: WinXP</p><p><strong>подписка</strong><br /></p><div class="codebox"><pre><code>
&#039;--------------------------------------------------------------------------------
&#039; Подписка на WMI событие отключения от глобальной сети с записью статистики сеанса в протокол.
&#039; Подходит для модемного соединения.
&#039;
&#039; Lang.: VBScript
&#039; OC WinXP 
&#039;--------------------------------------------------------------------------------

 Dim objShell, objService, objFilter, objConsumer, objFilterPath, objConsumerPath, objBinding

 Set objShell = CreateObject(&quot;WScript.Shell&quot;)
 Set objService = GetObject(&quot;WINMGMTS:{impersonationLevel=Impersonate}!\\.\ROOT\CIMV2&quot;)
    
 &#039;/Создание фильтра событий NetworkLogFilter/
 &#039;---------------------------------------------------------------------------
 Set objFilter = objService.Get(&quot;__EventFilter&quot;).SpawnInstance_()

 With objFilter
     .Name = &quot;NetworkLogFilter&quot;
     .QueryLanguage = &quot;WQL&quot;
     .EventNamespace = &quot;ROOT\CIMV2&quot;
     .Query = &quot;SELECT * FROM __InstanceDeletionEvent WITHIN 4 WHERE TargetInstance ISA &quot;&quot;Win32_PerfRawData_Tcpip_NetworkInterface&quot;&quot;&quot;
    Set objFilterPath = .Put_()
 End With

 &#039;/Потребитель событий NetworkLogConsumer/
 &#039;---------------------------------------------------------------------------
 Set objConsumer = objService.Get(&quot;LogFileEventConsumer&quot;).SpawnInstance_()

 With objConsumer
     .Name = &quot;NetworkLogConsumer&quot;
     .FileName = objShell.SpecialFolders.Item(&quot;MyDocuments&quot;) &amp; &quot;\NetworkLog.txt&quot;
     .Text = &quot;%TargetInstance.BytesSentPersec%&quot; &amp; vbTAB &amp; _
        &quot;%TargetInstance.BytesReceivedPersec%&quot; &amp; vbTAB &amp; _
        &quot;%TargetInstance.BytesTotalPersec%&quot;
    Set objConsumerPath = .Put_()
 End With

 &#039;/Связка фильтра и потребителя/
 &#039;---------------------------------------------------------------------------
 Set objBinding = objService.Get(&quot;__FilterToConsumerBinding&quot;).SpawnInstance_()

 With objBinding
     .Filter = objFilterPath
     .Consumer = objConsumerPath
     .Put_()
 End With

 MsgBox &quot;Подписка на событие отключения от глобальной сети с записью статистики сеанса в протокол.&quot; &amp; vbCRLF &amp; _
     objFilterPath.Path &amp; vbCRLF &amp; _
     objConsumerPath.Path, vbSystemModal + vbInformation, &quot;Subscribe&quot;

 WScript.Quit()
</code></pre></div><p><strong>отмена подписки</strong><br /></p><div class="codebox"><pre><code>
&#039;--------------------------------------------------------------------------------
&#039; Отмена подписки.
&#039;
&#039; Lang.: VBScript
&#039; OC WinXP 
&#039;--------------------------------------------------------------------------------

 Dim objService, objSet, objConsumer, objFilter
 Dim sFilter

 Set objService = GetObject(&quot;WINMGMTS:{impersonationLevel=Impersonate}!\\.\ROOT\CIMV2&quot;)

 Err.Clear
 On Error Resume Next

 &#039;/Удаление связки/
 &#039;---------------------------------------------------------------------------
 Set objSet = objService.ExecQuery(&quot;SELECT * FROM __FilterToConsumerBinding&quot;)
 For Each obj In objSet
     sFilter = CStr(obj.Filter)
     If InStr(sFilter, &quot;NetworkLogFilter&quot;)&lt;&gt;0 Then obj.Delete_()
 Next

 &#039;/Удаление фильтра и потребителя/
 &#039;---------------------------------------------------------------------------
 Set objConsumer = objService.Get(&quot;LogFileEventConsumer.Name=&quot;&quot;NetworkLogConsumer&quot;&quot;&quot;)
 Set objFilter = objService.Get(&quot;__EventFilter.Name=&quot;&quot;NetworkLogFilter&quot;&quot;&quot;)

 objConsumer.Delete_()
 objFilter.Delete_()
 &#039;---------------------------------------------------------------------------
 If Err.Number&lt;&gt;0 Then
    MsgBox Err.Description, vbExclamation + vbSystemModal, &quot;Error&quot;
 Else
    MsgBox &quot;Отмена подписки.&quot;, vbInformation + vbSystemModal, &quot;Reply&quot;
 End If
 WScript.Quit()
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Poltergeyst)]]></author>
			<pubDate>Sun, 24 May 2015 18:26:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=94170#p94170</guid>
		</item>
		<item>
			<title><![CDATA[HTA: Traffic Monitor]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50292#p50292</link>
			<description><![CDATA[<p>Монитор трафика для сетевого подключения с интерактивным выбором интерфейса\сетевой карты.</p><p>Отображает:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- кол-во входящего, отправленного и суммарный объём трафика;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- текущую скорость прокачки Кб/c;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- денежный расход (округление до 1kb);</p><p>Чтобы переместить окно программы:&nbsp; зажать ПКМ и плавно перетащить окно в нужное место. Либо с клавиатуры (считаю это намного удобнее) - зажать CTRL и перетащить окно с помощью стрелочек (Left,Right,Up,Down).</p><p>Цена за трафик по умолчанию - 1.2 [у.е.]/mb.<br />Чтобы изменить стоимость мегабайта трафика -&nbsp; проще и надёжнее изменить исх.код (см. стр. 102), но если же вы захотите делать пересчёты в реальном режиме:<br />1) двойной клик по окну программы;<br />2) ввести во всплывающей подсказке новую стоимость;</p><div class="codebox"><pre><code> &lt;!-- Name:		Traffic_monitor.hta
	  Language:	HyperText Application
	  Author:	Аскет,	true-script@ya.ru
	  Description: This is traffic monitor.
					Displays sent, received, total amount kBytes,  current speed and expense of money for internet-connection.
					Based on WMI (this is a such complex and higher technology, than winAPI)
 
	  Using:	For moving window - press &#039;Right mouse button&#039; (&quot;ПКМ&quot;) and fluent move of window.
                For correction the price for 1 mb traffic - 1) Dblclick on program-window
															2) input your price in popup-prompt.
															
															
 --&gt;
 
 
 &lt;HTML&gt;
   &lt;HEAD&gt;
   &lt;TITLE&gt;Traffic monitor v1.1&lt;/TITLE&gt;
   &lt;HTA:APPLICATION
        ID=&quot;oHTA&quot;
        APPLICATIONNAME=&quot;Traffic monitor&quot;
        BORDER=&quot;NONE&quot;
        BORDERSTYLE=&quot;&quot;
        SCROLL=&quot;NO&quot;
        SELECTION=NO
        CAPTION=&quot;yes&quot;
        ICON=&quot;&quot;
        MAXIMIZEBUTTON=&quot;no&quot;
        MINIMIZEBUTTON=&quot;no&quot;
        SHOWINTASKBAR=&quot;no&quot;
        SINGLEINSTANCE=&quot;YES&quot;
        SYSMENU=&quot;NO&quot;
        VERSION=&quot;1.1&quot;
        WINDOWSTATE=&quot;&quot; /&gt;
        
	 &lt;script&gt;
		window.resizeTo(120,100); window.moveTo(screen.availWidth-122, screen.availHeight-120);
	 &lt;/script&gt; 
	&lt;meta NAME=author VALUE==&quot;Gorelov Alexander, Jule 2011&quot;&gt;
&lt;/HEAD&gt;
 
 &lt;style&gt;
html, body{
   margin:0px;
   padding:0px;
   font:10;
   border-style: OUTset;
}
 &lt;/style&gt;

   &lt;BODY SCROLL=&quot;no&quot; bgcolor=&quot;#88FFC4&quot; onkeydown=&#039;moveMe()&#039;&gt;
&lt;!-----------------------------&gt;
&lt;TABLE CELLSPACING=&quot;0&quot; CELLPADDING=&quot;0&quot;BORDER=&quot;0&quot;WIDTH=&quot;100%&quot; HEIGHT=&quot;100%&quot; STYLE=&quot;FONT:11&quot;&gt;
	 &lt;TR style=&quot;font-weight:bold&quot;&gt;
		  &lt;TD &gt;Total, mb: &lt;/TD&gt;
		  &lt;TD ALIGN=&quot;RIGHT&quot; id=total&gt;&lt;/TD&gt;
	 &lt;/TR&gt;
	 &lt;TR&gt;
		  &lt;TD&gt;Received, mb:&lt;/TD&gt;
		  &lt;TD ALIGN=&quot;RIGHT&quot; id=Received&gt;&lt;/TD&gt;
	 &lt;/TR&gt;
	 &lt;TR&gt;
		  &lt;TD&gt;Sent, mb:&lt;/TD&gt;
		  &lt;TD ALIGN=&quot;RIGHT&quot; id=Sent&gt;&lt;/TD&gt;
	 &lt;/TR&gt;
	 &lt;TR style=&quot;font-weight:&quot;&gt;
		  &lt;TD&gt;Speed, kbps:&lt;/TD&gt;
		  &lt;TD ALIGN=&quot;RIGHT&quot; id=speed&gt;&lt;/TD&gt;
	 &lt;/TR&gt;
	 &lt;TR style=&quot;font-weight:bold;color:red&quot;&gt;
		  &lt;TD&gt;Money:&lt;/TD&gt;
		  &lt;TD ALIGN=&quot;RIGHT&quot; id=PriceField&gt;&lt;/TD&gt;
	 &lt;TR&gt;
	 &lt;TD colspan=2&gt;
			&lt;SELECT ID=CONNECTIONS onChange=&quot;changeConnection()&quot;  style=&#039;width:100%;HEIGHT:1; background:#DCF6ED;font=7pt &quot;Ms sarif&quot;&#039;&gt;
			&lt;/SELECT&gt;
	 &lt;/TD&gt;
	 &lt;/TR&gt;
&lt;/TABLE&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
     var x0, y0;
     document.onmousemove=function () {
         if ((event.button!=0)&amp;&amp;(event.button!=1)){
        // if (event.button!=0){
             window.moveBy(event.x-x0, event.y-y0);
             return false;
         }
         document.body.style.cursor=&quot;auto&quot;;
     }

     document.onmousedown=function () {
         if (event.button!=1){
             x0=event.x; y0=event.y;
         }
     }

&lt;/script&gt;

&lt;script language=VBS&gt;
	Public InterfaceName         &#039;имя сетевого интерфейс
	Public price : price = 1.2					&#039;цена за мегабайт трафика
	DIM M1 :M1 = 0
	updateInfo()


SUB window_onload
	call getConnection()
	InterfaceName = CONNECTIONS.options(0).value
END SUB


&#039;----------  ----------
SUB updateInfo()
on error resume next
	for each PROPS in ( GetObject (&quot;WINMGMTS:&quot;).ExecQuery _
	 (&quot;SELECT BytesTotalPersec,BytesReceivedPersec,BytesSentPersec FROM Win32_PerfRawData_Tcpip_NetworkInterface WHERE NAME=&quot; &amp; &quot;&#039;&quot; &amp; InterfaceName &amp; &quot;&#039;&quot; ))
		total.Innertext 	 = round(PROPS.BytesTotalPersec / 1048576,3)
		Received.Innertext = round(PROPS.BytesReceivedPersec / 1048576 ,3)
		Sent.InnerTEXT		 = round(PROPS.BytesSentPersec / 1048576,3)	
		PriceField.InnerTEXT= round((PROPS.BytesTotalPersec 	/ 1048576) * price ,2) &amp; &quot;&quot;	
			&#039;----------  расчёт скорости ----------
		speed.InnerText = round((PROPS.BytesTotalPersec-M1)/1024,2)
		M1 = PROPS.BytesTotalPersec
	next
	window.SetTimeout &quot;updateInfo()&quot;,1000							
END SUB

&#039;----------  ----------	
SUB document_ondblclick()
	price = Inputbox (&quot;Стоимость мегабайта:&quot;,&quot;Traffic monitor v1.1   /by Аскет&quot;,price )
END SUB	

&#039;---------- [ЗАПОЛНЕНИЕ СПИСКА ПОДКЛЮЧЕНИЙ] ----------
SUB getConnection()
		for each conn in ( GetObject (&quot;WINMGMTS:&quot;).ExecQuery _
		 (&quot;SELECT * FROM Win32_PerfRawData_Tcpip_NetworkInterface&quot;))
			a=a &amp; vbcr &amp; conn.name
			set newopt = document.createElement(&quot;OPTION&quot;)
			newopt.text=conn.name
			newopt.value=conn.name
			CONNECTIONS.options.add newopt
		next
END SUB
&#039;---------- [ИЗМЕНЕНО ПОДКЛЮЧЕНИЕ] ----------
SUB changeConnection()
	if CONNECTIONS.Selectedindex=-1 then exit sub
	InterfaceName = CONNECTIONS.options(CONNECTIONS.SelectedIndex).value
END SUB
&lt;/script&gt;

&lt;script&gt;
// to move window -  press CTRL and by keys of the cursor
function moveMe() {
	if (event.ctrlKey) {
			if (event.keyCode==37) { var top=window.screenTop;window.moveTo(window.screenLeft-10,top);}
		else {
			if (event.keyCode==39) { var top=window.screenTop;window.moveTo(window.screenLeft+10,top);};
		else {
			if (event.keyCode==38) { var left=window.screenLeft;window.moveTo(left,window.screenTop-10);};
		else {
			if (event.keyCode==40) { var left=window.screenLeft;window.moveTo(left,window.screenTop+10);};
		}}}}}
&lt;/script&gt;
&lt;!-----------------------------&gt;
	&lt;/BODY&gt;
&lt;/HTML&gt;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Аскет)]]></author>
			<pubDate>Sat, 30 Jul 2011 21:37:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50292#p50292</guid>
		</item>
	</channel>
</rss>
