<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Мsgbox с информацией о состоянии торрента]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=11543&amp;type=atom" />
	<updated>2016-05-03T16:20:49Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=11543</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103304#p103304" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Может стоит добавить как сноску?</p></blockquote></div><p>Так там есть же:</p><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p><a href="https://autohotkey.com/boards/viewtopic.php?f=6&amp;t=4555">Источник.</a></p></blockquote></div><p>Кому надо, тот всё найдёт, это ведь не для начинающих материал.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-03T16:20:49Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103304#p103304</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103301#p103301" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Только в JsRT, а у нас пока добавлен в коллекцию только ActiveScript.</p></blockquote></div><p>Может стоит добавить как сноску?<br /></p><div class="quotebox"><blockquote><p>До тех пор, пока не будут написаны 64-битные версии.</p></blockquote></div><p>Если будут.<br /></p><div class="quotebox"><blockquote><p>Пока покупают, понятно, будет выпускать. Но это до тех пор, пока у людей не испортятся старые компьютеры.</p></blockquote></div><p>Думаю дело не в старых компьютерах, а в куче старых плагинов, которые работают только под 32 бит.<br />Хотя, думаю, рано или поздно таки прекратят выпускать, как сделали это с видесофтом.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2016-05-03T15:28:07Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103301#p103301</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103298#p103298" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Там это где? В исходном коде от Lexikos идёт.</p></blockquote></div><p>Только в <a href="https://github.com/Lexikos/ActiveScript.ahk/blob/master/readme.md#jsrt">JsRT</a>, а у нас пока добавлен в коллекцию только ActiveScript.</p><div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Кому нужны 32 bit com объекты, тот будет пользоваться.</p></blockquote></div><p>До тех пор, пока не будут написаны 64-битные версии.</p><div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Adobe Photoshop 32bit прекращать выпускать не собирается</p></blockquote></div><p>Пока покупают, понятно, будет выпускать. Но это до тех пор, пока у людей не испортятся старые компьютеры. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-03T14:08:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103298#p103298</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103296#p103296" />
			<content type="html"><![CDATA[<p>Там это где? В исходном коде от Lexikos идёт.<br /></p><div class="quotebox"><blockquote><p>так что не вижу смысла пользоваться 32-битным AHK</p></blockquote></div><p>Кому нужны 32 bit com объекты, тот будет пользоваться.<br /></p><div class="quotebox"><blockquote><p>это скоро станет анахронизмом, как AHK-basic.</p></blockquote></div><p>Ну это еще неизвестно. Например Adobe Photoshop 32bit прекращать выпускать не собирается.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2016-05-03T13:29:49Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103296#p103296</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103295#p103295" />
			<content type="html"><![CDATA[<p>О javascript там речи не идёт, только JScript (другое дело, что синтаксис почти идентичен). А системы сейчас 64-битные в основном, так что не вижу смысла пользоваться 32-битным AHK, это скоро станет анахронизмом, как AHK-basic.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-03T13:03:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103295#p103295</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103293#p103293" />
			<content type="html"><![CDATA[<p>Мне кажется этот класс лишним для тех, кто пользуется ahk 32 bit и кому не надо выполнение джава-скриптов.<br />Этого же достаточно:<br /></p><div class="codebox"><pre><code>JS := ComObjCreate(&quot;ScriptControl&quot;)
JS.Language := &quot;JScript&quot;
JS.eval(&quot;delete ActiveXObject; delete GetObject;&quot;) 
obj := JS.eval(&quot;(&quot; . JsonString . &quot;)&quot;).torrents  
Loop % obj.length
	MsgBox % obj[A_Index - 1][2]</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2016-05-03T12:39:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103293#p103293</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103275#p103275" />
			<content type="html"><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?pid=103274#p103274">Добавил</a>.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-05-02T13:11:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103275#p103275</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103273#p103273" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>у тебя думаю получится добавить какие то комментарии к нему, какие языки поддерживает и.т.п.</p></blockquote></div><p>Да нет, сталкиваюсь с этим первый раз, как и ты.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-02T12:53:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103273#p103273</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103272#p103272" />
			<content type="html"><![CDATA[<p>Думаю лучше заголовок изменить, должно быть в одном месте.<br />Только лучше тебе добавить, я могу просто выложить, у тебя думаю получится добавить какие то комментарии к нему, какие языки поддерживает и.т.п.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-05-02T11:36:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103272#p103272</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103271#p103271" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Или с классом. Предлагаю его добавить <a href="http://forum.script-coding.com/viewtopic.php?id=9101">куда нибудь</a> в коллекцию.</p></blockquote></div><p>Можешь добавить, только не в тот пост, там же про WSC. Ну или можно в тот, тогда заголовок потом изменим.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-02T11:32:12Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103271#p103271</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103270#p103270" />
			<content type="html"><![CDATA[<p>Или с классом. Предлагаю его добавить <a href="http://forum.script-coding.com/viewtopic.php?id=9101">куда нибудь</a> в коллекцию.<br /></p><div class="codebox"><pre><code>
JsonString =
( %
{&quot;build&quot;:42094,&quot;torrents&quot;: [

[&quot;0BEA71DDE9D98E1347AE8279D7179F91ADFB56EF&quot;,152,&quot;Encore Working&quot;,28051669,1000,28051669,0,0,0,0,0,&quot;&quot;,0,0,0,0,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;Error: Files missing from job. Please recheck.&quot;,&quot;2&quot;,1444982047,1444982062,&quot;&quot;,&quot;C:\\Users\\Macev\\Downloads\\Encore Working&quot;,0,&quot;6E1AC188&quot;],
[&quot;2637D5F5E260361A3889C0C5AE9367DFE7874E1E&quot;,152,&quot;proDAD VitaScene v.2.0.232 (32+64)&quot;,244981616,1000,0,0,0,0,0,0,&quot;&quot;,0,0,0,0,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;Error: Files missing from job. Please recheck.&quot;,&quot;4&quot;,1449825719,1449825721,&quot;&quot;,&quot;D:\\Install\\proDAD VitaScene v.2.0.232 (32+64)&quot;,0,&quot;E1740911&quot;],
[&quot;9BA21D469D218CAA249BAA7BF7DE7E3655C08319&quot;,137,&quot;VideoHive - 3D Abstract Logo R\&quot;,999\\&quot;,929143724,1000,929143724,0,0,0,0,-1,&quot;&quot;,0,15,0,4,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;[F] Seeding 100.0 %&quot;,&quot;3&quot;,1446636514,1446636838,&quot;&quot;,&quot;D:\\VLADA\\6\\VideoHive - 3D Abstract Logo Reveal&quot;,0,&quot;9704CFC7&quot;],
[&quot;B54AFDF03A77D110A1F6447C47C0641272C786FA&quot;,152,&quot;Adobe.Premiere.Pro.CS6.v6.0.1.014.Multilingual.mundomanuales.com&quot;,1525427107,1000,1525427107,507904,0,0,0,0,&quot;&quot;,0,0,0,0,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;Error: Files missing from job. Please recheck.&quot;,&quot;5&quot;,1444892904,1444893225,&quot;&quot;,&quot;C:\\Users\\Macev\\Downloads\\Adobe.Premiere.Pro.CS6.v6.0.1.014.Multilingual.mundomanuales.com&quot;,0,&quot;0AA13C1B&quot;]],
&quot;label&quot;: [],&quot;torrentc&quot;: &quot;1915350263&quot;
,&quot;rssfeeds&quot;: []
,&quot;rssfilters&quot;: []
}
)
JS := new ActiveScript(&quot;JScript&quot;)
JS.eval(&quot;delete ActiveXObject; delete GetObject;&quot;) 

obj := JS.eval(&quot;(&quot; . JsonString . &quot;)&quot;).torrents  
Loop % obj.length
	MsgBox % obj[A_Index - 1][2]


/*
 *  ActiveScript for AutoHotkey v1.1
 *
 *  Provides an interface to Active Scripting languages like VBScript and JScript,
 *  without relying on Microsoft&#039;s ScriptControl, which is not available to 64-bit
 *  programs.
 *
 *  License: Use, modify and redistribute without limitation, but at your own risk.
 */
class ActiveScript extends ActiveScript._base
{
    __New(Language)
    {
        if this._script := ComObjCreate(Language, ActiveScript.IID)
            this._scriptParse := ComObjQuery(this._script, ActiveScript.IID_Parse)
        if !this._scriptParse
            throw Exception(&quot;Invalid language&quot;, -1, Language)
        this._site := new ActiveScriptSite(this)
        this._SetScriptSite(this._site.ptr)
        this._InitNew()
        this._objects := {}
        this.Error := &quot;&quot;
        this._dsp := this._GetScriptDispatch()  ; Must be done last.
        try
            if this.ScriptEngine() = &quot;JScript&quot;
                this.SetJScript58()
    }

    SetJScript58()
    {
        static IID_IActiveScriptProperty := &quot;{4954E0D0-FBC7-11D1-8410-006008C3FBFC}&quot;
        if !prop := ComObjQuery(this._script, IID_IActiveScriptProperty)
            return false
        VarSetCapacity(var, 24, 0), NumPut(2, NumPut(3, var, &quot;short&quot;) + 6)
        hr := DllCall(NumGet(NumGet(prop+0)+4*A_PtrSize), &quot;ptr&quot;, prop, &quot;uint&quot;, 0x4000
            , &quot;ptr&quot;, 0, &quot;ptr&quot;, &amp;var), ObjRelease(prop)
        return hr &gt;= 0
    }
    
    Eval(Code)
    {
        pvar := NumGet(ComObjValue(arr:=ComObjArray(0xC,1)) + 8+A_PtrSize)
        this._ParseScriptText(Code, 0x20, pvar)  ; SCRIPTTEXT_ISEXPRESSION := 0x20
        return arr[0]
    }
    
    Exec(Code)
    {
        this._ParseScriptText(Code, 0x42, 0)  ; SCRIPTTEXT_ISVISIBLE := 2, SCRIPTTEXT_ISPERSISTENT := 0x40
        this._SetScriptState(2)  ; SCRIPTSTATE_CONNECTED := 2
    }
    
    AddObject(Name, DispObj, AddMembers := false)
    {
        static a, supports_dispatch ; Test for built-in IDispatch support.
            := a := ((a:=ComObjArray(0xC,1))[0]:=[42]) &amp;&amp; a[0][1]=42
        if IsObject(DispObj) &amp;&amp; !(supports_dispatch || ComObjType(DispObj))
            throw Exception(&quot;Adding a non-COM object requires AutoHotkey v1.1.17+&quot;, -1)
        this._objects[Name] := DispObj
        this._AddNamedItem(Name, AddMembers ? 8 : 2)  ; SCRIPTITEM_ISVISIBLE := 2, SCRIPTITEM_GLOBALMEMBERS := 8
    }
    
    _GetObjectUnk(Name)
    {
        return !IsObject(dsp := this._objects[Name]) ? dsp  ; Pointer
            : ComObjValue(dsp) ? ComObjValue(dsp)  ; ComObject
            : &amp;dsp  ; AutoHotkey object
    }
    
    class _base
    {
        __Call(Method, Params*)
        {
            if ObjHasKey(this, &quot;_dsp&quot;)
                try
                    return (this._dsp)[Method](Params*)
                catch e
                    throw Exception(e.Message, -1, e.Extra)
        }
        
        __Get(Property, Params*)
        {
            if ObjHasKey(this, &quot;_dsp&quot;)
                try
                    return (this._dsp)[Property, Params*]
                catch e
                    throw Exception(e.Message, -1, e.Extra)
        }
        
        __Set(Property, Params*)
        {
            if ObjHasKey(this, &quot;_dsp&quot;)
            {
                Value := Params.Pop()
                try
                    return (this._dsp)[Property, Params*] := Value
                catch e
                    throw Exception(e.Message, -1, e.Extra)
            }
        }
    }
    
    _SetScriptSite(Site)
    {
        hr := DllCall(NumGet(NumGet((p:=this._script)+0)+3*A_PtrSize), &quot;ptr&quot;, p, &quot;ptr&quot;, Site)
        if (hr &lt; 0)
            this._HRFail(hr, &quot;IActiveScript::SetScriptSite&quot;)
    }
    
    _SetScriptState(State)
    {
        hr := DllCall(NumGet(NumGet((p:=this._script)+0)+5*A_PtrSize), &quot;ptr&quot;, p, &quot;int&quot;, State)
        if (hr &lt; 0)
            this._HRFail(hr, &quot;IActiveScript::SetScriptState&quot;)
    }
    
    _AddNamedItem(Name, Flags)
    {
        hr := DllCall(NumGet(NumGet((p:=this._script)+0)+8*A_PtrSize), &quot;ptr&quot;, p, &quot;wstr&quot;, Name, &quot;uint&quot;, Flags)
        if (hr &lt; 0)
            this._HRFail(hr, &quot;IActiveScript::AddNamedItem&quot;)
    }
    
    _GetScriptDispatch()
    {
        hr := DllCall(NumGet(NumGet((p:=this._script)+0)+10*A_PtrSize), &quot;ptr&quot;, p, &quot;ptr&quot;, 0, &quot;ptr*&quot;, pdsp)
        if (hr &lt; 0)
            this._HRFail(hr, &quot;IActiveScript::GetScriptDispatch&quot;)
        return ComObject(9, pdsp, 1)
    }
    
    _InitNew()
    {
        hr := DllCall(NumGet(NumGet((p:=this._scriptParse)+0)+3*A_PtrSize), &quot;ptr&quot;, p)
        if (hr &lt; 0)
            this._HRFail(hr, &quot;IActiveScriptParse::InitNew&quot;)
    }
    
    _ParseScriptText(Code, Flags, pvarResult)
    {
        VarSetCapacity(excp, 8 * A_PtrSize, 0)
        hr := DllCall(NumGet(NumGet((p:=this._scriptParse)+0)+5*A_PtrSize), &quot;ptr&quot;, p
            , &quot;wstr&quot;, Code, &quot;ptr&quot;, 0, &quot;ptr&quot;, 0, &quot;ptr&quot;, 0, &quot;uptr&quot;, 0, &quot;uint&quot;, 1
            , &quot;uint&quot;, Flags, &quot;ptr&quot;, pvarResult, &quot;ptr&quot;, 0)
        if (hr &lt; 0)
            this._HRFail(hr, &quot;IActiveScriptParse::ParseScriptText&quot;)
    }
    
    _HRFail(hr, what)
    {
        if e := this.Error
        {
            this.Error := &quot;&quot;
            throw Exception(&quot;`nError code:`t&quot; this._HRFormat(e.HRESULT)
                . &quot;`nSource:`t`t&quot; e.Source &quot;`nDescription:`t&quot; e.Description
                . &quot;`nLine:`t`t&quot; e.Line &quot;`nColumn:`t`t&quot; e.Column
                . &quot;`nLine text:`t`t&quot; e.LineText, -3)
        }
        throw Exception(what &quot; failed with code &quot; this._HRFormat(hr), -2)
    }
    
    _HRFormat(hr)
    {
        return Format(&quot;0x{1:X}&quot;, hr &amp; 0xFFFFFFFF)
    }
    
    _OnScriptError(err) ; IActiveScriptError err
    {
        VarSetCapacity(excp, 8 * A_PtrSize, 0)
        DllCall(NumGet(NumGet(err+0)+3*A_PtrSize), &quot;ptr&quot;, err, &quot;ptr&quot;, &amp;excp) ; GetExceptionInfo
        DllCall(NumGet(NumGet(err+0)+4*A_PtrSize), &quot;ptr&quot;, err, &quot;uint*&quot;, srcctx, &quot;uint*&quot;, srcline, &quot;int*&quot;, srccol) ; GetSourcePosition
        DllCall(NumGet(NumGet(err+0)+5*A_PtrSize), &quot;ptr&quot;, err, &quot;ptr*&quot;, pbstrcode) ; GetSourceLineText
        code := StrGet(pbstrcode, &quot;UTF-16&quot;), DllCall(&quot;OleAut32\SysFreeString&quot;, &quot;ptr&quot;, pbstrcode)
        if fn := NumGet(excp, 6 * A_PtrSize) ; pfnDeferredFillIn
            DllCall(fn, &quot;ptr&quot;, &amp;excp)
        wcode := NumGet(excp, 0, &quot;ushort&quot;)
        hr := wcode ? 0x80040200 + wcode : NumGet(excp, 7 * A_PtrSize, &quot;uint&quot;)
        this.Error := {HRESULT: hr, Line: srcline, Column: srccol, LineText: code}
        static Infos := &quot;Source,Description,HelpFile&quot;
        Loop Parse, % Infos, `,
            if pbstr := NumGet(excp, A_Index * A_PtrSize)
                this.Error[A_LoopField] := StrGet(pbstr, &quot;UTF-16&quot;), DllCall(&quot;OleAut32\SysFreeString&quot;, &quot;ptr&quot;, pbstr)
        return 0x80004001 ; E_NOTIMPL (let Exec/Eval get a fail result)
    }
    
    __Delete()
    {
        if this._script
        {
            DllCall(NumGet(NumGet((p:=this._script)+0)+7*A_PtrSize), &quot;ptr&quot;, p)  ; Close
            ObjRelease(this._script)
        }
        if this._scriptParse
            ObjRelease(this._scriptParse)
    }
    
    static IID := &quot;{BB1A2AE1-A4F9-11cf-8F20-00805F2CD064}&quot;
    static IID_Parse := A_PtrSize=8 ? &quot;{C7EF7658-E1EE-480E-97EA-D52CB4D76D17}&quot; : &quot;{BB1A2AE2-A4F9-11cf-8F20-00805F2CD064}&quot;
}

class ActiveScriptSite
{
    __New(Script)
    {
        ObjSetCapacity(this, &quot;_site&quot;, 3 * A_PtrSize)
        NumPut(&amp;Script
        , NumPut(ActiveScriptSite._vftable(&quot;_vft_w&quot;, &quot;31122&quot;, 0x100)
        , NumPut(ActiveScriptSite._vftable(&quot;_vft&quot;, &quot;31125232211&quot;, 0)
            , this.ptr := ObjGetAddress(this, &quot;_site&quot;))))
    }
    
    _vftable(Name, PrmCounts, EIBase)
    {
        if p := ObjGetAddress(this, Name)
            return p
        ObjSetCapacity(this, Name, StrLen(PrmCounts) * A_PtrSize)
        p := ObjGetAddress(this, Name)
        Loop Parse, % PrmCounts
        {
            cb := RegisterCallback(&quot;_ActiveScriptSite&quot;, &quot;F&quot;, A_LoopField, A_Index + EIBase)
            NumPut(cb, p + (A_Index-1) * A_PtrSize)
        }
        return p
    }
}

_ActiveScriptSite(this, a1:=0, a2:=0, a3:=0, a4:=0, a5:=0)
{
    Method := A_EventInfo &amp; 0xFF
    if A_EventInfo &gt;= 0x100  ; IActiveScriptSiteWindow
    {
        if Method = 4  ; GetWindow
        {
            NumPut(0, a1+0) ; *phwnd := 0
            return 0 ; S_OK
        }
        if Method = 5  ; EnableModeless
        {
            return 0 ; S_OK
        }
        this -= A_PtrSize     ; Cast to IActiveScriptSite
    }
    ;else: IActiveScriptSite
    if Method = 1  ; QueryInterface
    {
        iid := _AS_GUIDToString(a1)
        if (iid = &quot;{00000000-0000-0000-C000-000000000046}&quot;  ; IUnknown
         || iid = &quot;{DB01A1E3-A42B-11cf-8F20-00805F2CD064}&quot;) ; IActiveScriptSite
        {
            NumPut(this, a2+0)
            return 0 ; S_OK
        }
        if (iid = &quot;{D10F6761-83E9-11cf-8F20-00805F2CD064}&quot;) ; IActiveScriptSiteWindow
        {
            NumPut(this + A_PtrSize, a2+0)
            return 0 ; S_OK
        }
        NumPut(0, a2+0)
        return 0x80004002 ; E_NOINTERFACE
    }
    if Method = 5  ; GetItemInfo
    {
        a1 := StrGet(a1, &quot;UTF-16&quot;)
        , (a3 &amp;&amp; NumPut(0, a3+0))  ; *ppiunkItem := NULL
        , (a4 &amp;&amp; NumPut(0, a4+0))  ; *ppti := NULL
        if (a2 &amp; 1) ; SCRIPTINFO_IUNKNOWN
        {
            if !(unk := Object(NumGet(this + A_PtrSize*2))._GetObjectUnk(a1))
                return 0x8002802B ; TYPE_E_ELEMENTNOTFOUND
            ObjAddRef(unk), NumPut(unk, a3+0)
        }
        return 0 ; S_OK
    }
    if Method = 9  ; OnScriptError
        return Object(NumGet(this + A_PtrSize*2))._OnScriptError(a1)
    
    ; AddRef and Release don&#039;t do anything because we want to avoid circular references.
    ; The site and IActiveScript are both released when the AHK script releases its last
    ; reference to the ActiveScript object.
    
    ; All of the other methods don&#039;t require implementations.
    return 0x80004001 ; E_NOTIMPL
}

_AS_GUIDToString(pGUID)
{
    VarSetCapacity(String, 38*2)
    DllCall(&quot;ole32\StringFromGUID2&quot;, &quot;ptr&quot;, pGUID, &quot;str&quot;, String, &quot;int&quot;, 39)
    return String
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-05-02T11:25:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103270#p103270</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103269#p103269" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
ScriptletURL := A_Temp . &quot;\JS.wsc&quot;
FileDelete, %ScriptletURL%
FileAppend, 
(
&lt;component&gt;
&lt;public&gt;&lt;method name=&#039;eval&#039;/&gt;&lt;/public&gt;
&lt;script language=&#039;JScript&#039;&gt;&lt;/script&gt;
&lt;/component&gt;
), %ScriptletURL%


JS := ComObjGet(&quot;script:&quot; . ScriptletURL)
JS.eval(&quot;delete ActiveXObject; delete GetObject;&quot;)

JsonString =
( %
{&quot;build&quot;:42094,&quot;torrents&quot;: [

[&quot;0BEA71DDE9D98E1347AE8279D7179F91ADFB56EF&quot;,152,&quot;Encore Working&quot;,28051669,1000,28051669,0,0,0,0,0,&quot;&quot;,0,0,0,0,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;Error: Files missing from job. Please recheck.&quot;,&quot;2&quot;,1444982047,1444982062,&quot;&quot;,&quot;C:\\Users\\Macev\\Downloads\\Encore Working&quot;,0,&quot;6E1AC188&quot;],
[&quot;2637D5F5E260361A3889C0C5AE9367DFE7874E1E&quot;,152,&quot;proDAD VitaScene v.2.0.232 (32+64)&quot;,244981616,1000,0,0,0,0,0,0,&quot;&quot;,0,0,0,0,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;Error: Files missing from job. Please recheck.&quot;,&quot;4&quot;,1449825719,1449825721,&quot;&quot;,&quot;D:\\Install\\proDAD VitaScene v.2.0.232 (32+64)&quot;,0,&quot;E1740911&quot;],
[&quot;9BA21D469D218CAA249BAA7BF7DE7E3655C08319&quot;,137,&quot;VideoHive - 3D Abstract Logo R\&quot;,999\\&quot;,929143724,1000,929143724,0,0,0,0,-1,&quot;&quot;,0,15,0,4,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;[F] Seeding 100.0 %&quot;,&quot;3&quot;,1446636514,1446636838,&quot;&quot;,&quot;D:\\VLADA\\6\\VideoHive - 3D Abstract Logo Reveal&quot;,0,&quot;9704CFC7&quot;],
[&quot;B54AFDF03A77D110A1F6447C47C0641272C786FA&quot;,152,&quot;Adobe.Premiere.Pro.CS6.v6.0.1.014.Multilingual.mundomanuales.com&quot;,1525427107,1000,1525427107,507904,0,0,0,0,&quot;&quot;,0,0,0,0,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;Error: Files missing from job. Please recheck.&quot;,&quot;5&quot;,1444892904,1444893225,&quot;&quot;,&quot;C:\\Users\\Macev\\Downloads\\Adobe.Premiere.Pro.CS6.v6.0.1.014.Multilingual.mundomanuales.com&quot;,0,&quot;0AA13C1B&quot;]],
&quot;label&quot;: [],&quot;torrentc&quot;: &quot;1915350263&quot;
,&quot;rssfeeds&quot;: []
,&quot;rssfilters&quot;: []
}
)
obj := JS.eval(&quot;(&quot; . JsonString . &quot;)&quot;).torrents  
Loop % obj.length
	MsgBox % obj[A_Index - 1][2]
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-05-02T11:20:49Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103269#p103269</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103267#p103267" />
			<content type="html"><![CDATA[<p>Тут наверное лучше парсить через JSon, а я им ни разу не пользовался.<br />Может teadrinker или кто-то еще помогут, как из этого массива достать имена.<br />Encore Working<br />VideoHive - 3D Abstract Logo R&quot;,999\</p><div class="codebox"><pre><code>{&quot;build&quot;:42094,&quot;torrents&quot;: [

[&quot;0BEA71DDE9D98E1347AE8279D7179F91ADFB56EF&quot;,152,&quot;Encore Working&quot;,28051669,1000,28051669,0,0,0,0,0,&quot;&quot;,0,0,0,0,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;Error: Files missing from job. Please recheck.&quot;,&quot;2&quot;,1444982047,1444982062,&quot;&quot;,&quot;C:\\Users\\Macev\\Downloads\\Encore Working&quot;,0,&quot;6E1AC188&quot;],
[&quot;2637D5F5E260361A3889C0C5AE9367DFE7874E1E&quot;,152,&quot;proDAD VitaScene v.2.0.232 (32+64)&quot;,244981616,1000,0,0,0,0,0,0,&quot;&quot;,0,0,0,0,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;Error: Files missing from job. Please recheck.&quot;,&quot;4&quot;,1449825719,1449825721,&quot;&quot;,&quot;D:\\Install\\proDAD VitaScene v.2.0.232 (32+64)&quot;,0,&quot;E1740911&quot;],
[&quot;9BA21D469D218CAA249BAA7BF7DE7E3655C08319&quot;,137,&quot;VideoHive - 3D Abstract Logo R\&quot;,999\\&quot;,929143724,1000,929143724,0,0,0,0,-1,&quot;&quot;,0,15,0,4,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;[F] Seeding 100.0 %&quot;,&quot;3&quot;,1446636514,1446636838,&quot;&quot;,&quot;D:\\VLADA\\6\\VideoHive - 3D Abstract Logo Reveal&quot;,0,&quot;9704CFC7&quot;],
[&quot;B54AFDF03A77D110A1F6447C47C0641272C786FA&quot;,152,&quot;Adobe.Premiere.Pro.CS6.v6.0.1.014.Multilingual.mundomanuales.com&quot;,1525427107,1000,1525427107,507904,0,0,0,0,&quot;&quot;,0,0,0,0,65536,-1,0,&quot;&quot;,&quot;&quot;,&quot;Error: Files missing from job. Please recheck.&quot;,&quot;5&quot;,1444892904,1444893225,&quot;&quot;,&quot;C:\\Users\\Macev\\Downloads\\Adobe.Premiere.Pro.CS6.v6.0.1.014.Multilingual.mundomanuales.com&quot;,0,&quot;0AA13C1B&quot;]],
&quot;label&quot;: [],&quot;torrentc&quot;: &quot;1915350263&quot;
,&quot;rssfeeds&quot;: []
,&quot;rssfilters&quot;: []
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2016-05-02T11:05:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103267#p103267</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103263#p103263" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong><br />Проблема в моей невежде. Я пробовал через браузер - не работает, а вот в AHK все работает, странно ну да ладно.<br />Но. Команда &quot;?list=1&quot; не показывает всего что казалось бы должна, так бы можно было через RegExMatch все лишнее убрать.<br />В <a href="https://forum.utorrent.com/topic/21814-web-ui-api/#comment-165577">посте</a> жирным шрифтом выделены &quot;<strong>STATUS</strong>&quot;, &quot;<strong>NAME</strong>&quot; и тд. Подскажите как вот именно эту информацию извлечь?</p>]]></content>
			<author>
				<name><![CDATA[SeaVodikendu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33752</uri>
			</author>
			<updated>2016-05-02T09:16:49Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103263#p103263</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Мsgbox с информацией о состоянии торрента]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=103209#p103209" />
			<content type="html"><![CDATA[<p>А в чём проблема? По ссылке же всё расписано.<br /></p><div class="codebox"><pre><code>ip := &quot;192.168.0.150&quot;
port := &quot;8080&quot;
user := &quot;user&quot;
pass := &quot;pass&quot;
url := &quot;http://&quot; ip &quot;:&quot; port &quot;/gui/&quot;
tokenUrl := url &quot;token.html&quot;
action := &quot;?list=1&quot;
HTTP := ComObjCreate(&quot;WinHTTP.WinHTTPRequest.5.1&quot;)
HTTP.Open(&quot;GET&quot;, tokenUrl, false)
HTTP.SetCredentials(user, pass, 0)
HTTP.Send()
token := &quot;&amp;token=&quot; RegExReplace(HTTP.ResponseText, &quot;&lt;.+?&gt;&quot;)
HTTP.Open(&quot;GET&quot;, url action token, false)
HTTP.SetCredentials(user, pass, 0)
HTTP.Send()
msgbox % HTTP.ResponseText</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2016-04-30T13:21:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=103209#p103209</id>
		</entry>
</feed>
