<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK | Требуется код из AHK переводчика.]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=14034</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=14034&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK | Требуется код из AHK переводчика.».]]></description>
		<lastBuildDate>Thu, 16 Aug 2018 18:21:26 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK | Требуется код из AHK переводчика.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=128041#p128041</link>
			<description><![CDATA[<p><strong>Malcev</strong><br />Благодарю!<br />Мне нужен был только сырой перевод (без синонимов), хоть не на столько я глупый, хватило ума <span class="bbu">Return trans</span> заменить&nbsp; на <span class="bbu">Return MainTransText</span>. Ещё раз спасибо за терпение, на вашем месте я бы давно бомбанул.</p>]]></description>
			<author><![CDATA[null@example.com (TwenKey)]]></author>
			<pubDate>Thu, 16 Aug 2018 18:21:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=128041#p128041</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK | Требуется код из AHK переводчика.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127935#p127935</link>
			<description><![CDATA[<div class="codebox"><pre><code>MsgBox, % GoogleTranslate(&quot;Привет Мир!&quot;)

GoogleTranslate(str, from := &quot;ru&quot;, to := &quot;en&quot;)  {
   json := SendRequest(str, to, from, proxy:=&quot;&quot;)
   JS := new ActiveScript(&quot;JScript&quot;)
   JS.eval(&quot;delete ActiveXObject; delete GetObject;&quot;)
   oJSON := JS.eval(&quot;(&quot; . JSON . &quot;)&quot;)

   if !IsObject(oJSON[1])
      Loop % oJSON[0].length
         trans .= oJSON[0][A_Index - 1][0]
   else  {
      MainTransText := oJSON[0][0][0]
      Loop % oJSON[1].length  {
         trans .= &quot;`n+&quot;
         obj := oJSON[1][A_Index-1][1]
         Loop % obj.length  {
            txt := obj[A_Index - 1]
            trans .= (MainTransText = txt ? &quot;&quot; : &quot;`n&quot; txt)
         }
      }
   }
   if !IsObject(oJSON[1])
      MainTransText := trans := Trim(trans, &quot;,+`n &quot;)
   else
      trans := MainTransText . &quot;`n+`n&quot; . Trim(trans, &quot;,+`n &quot;)

   from := oJSON[2]
   trans := Trim(trans, &quot;,+`n &quot;)
   Return trans
}

SendRequest(str, tl := &quot;&quot;, sl := &quot;&quot;, proxy := &quot;&quot;) {
   ComObjError(false)
   http := ComObjCreate(&quot;WinHttp.WinHttpRequest.5.1&quot;)
   proxy ? http.SetProxy(2, proxy) : &quot;&quot;, tl ? &quot;&quot; : tl := &quot;en&quot;
   http.open( &quot;POST&quot;, &quot;https://translate.google.com/translate_a/single?client=t&amp;sl=&quot;
      . (sl ? sl : &quot;auto&quot;) &quot;&amp;tl=&quot; tl &quot;&amp;hl=&quot; tl
      . &quot;&amp;dt=at&amp;dt=bd&amp;dt=ex&amp;dt=ld&amp;dt=md&amp;dt=qca&amp;dt=rw&amp;dt=rm&amp;dt=ss&amp;dt=t&amp;ie=UTF-8&amp;oe=UTF-8&amp;otf=1&amp;ssel=3&amp;tsel=3&amp;pc=1&amp;kc=2&quot;
      . &quot;&amp;tk=&quot; TK(str), 1 )

   http.SetRequestHeader(&quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded;charset=utf-8&quot;)
   http.SetRequestHeader(&quot;User-Agent&quot;, &quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0&quot;)
   http.send(&quot;q=&quot; URIEncode(str))
   http.WaitForResponse(-1)
   Return http.responsetext
}

TK(string)  {
   js := new ActiveScript(&quot;JScript&quot;)
   js.Exec(GetJScript())
   Return js.tk(string)
}

URIEncode(str, encoding := &quot;UTF-8&quot;)  {
   VarSetCapacity(var, StrPut(str, encoding))
   StrPut(str, &amp;var, encoding)

   While code := NumGet(Var, A_Index - 1, &quot;UChar&quot;)  {
      bool := (code &gt; 0x7F || code &lt; 0x30 || code = 0x3D)
      UrlStr .= bool ? &quot;%&quot; . Format(&quot;{:02X}&quot;, code) : Chr(code)
   }
   Return UrlStr
}

GetJScript()
{
   script =
   (
      var TKK = ((function() {
        var a = 561666268;
        var b = 1526272306;
        return 406398 + &#039;.&#039; + (a + b);
      })());

      function b(a, b) {
        for (var d = 0; d &lt; b.length - 2; d += 3) {
            var c = b.charAt(d + 2),
                c = &quot;a&quot; &lt;= c ? c.charCodeAt(0) - 87 : Number(c),
                c = &quot;+&quot; == b.charAt(d + 1) ? a &gt;&gt;&gt; c : a &lt;&lt; c;
            a = &quot;+&quot; == b.charAt(d) ? a + c &amp; 4294967295 : a ^ c
        }
        return a
      }

      function tk(a) {
          for (var e = TKK.split(&quot;.&quot;), h = Number(e[0]) || 0, g = [], d = 0, f = 0; f &lt; a.length; f++) {
              var c = a.charCodeAt(f);
              128 &gt; c ? g[d++] = c : (2048 &gt; c ? g[d++] = c &gt;&gt; 6 | 192 : (55296 == (c &amp; 64512) &amp;&amp; f + 1 &lt; a.length &amp;&amp; 56320 == (a.charCodeAt(f + 1) &amp; 64512) ?
              (c = 65536 + ((c &amp; 1023) &lt;&lt; 10) + (a.charCodeAt(++f) &amp; 1023), g[d++] = c &gt;&gt; 18 | 240,
              g[d++] = c &gt;&gt; 12 &amp; 63 | 128) : g[d++] = c &gt;&gt; 12 | 224, g[d++] = c &gt;&gt; 6 &amp; 63 | 128), g[d++] = c &amp; 63 | 128)
          }
          a = h;
          for (d = 0; d &lt; g.length; d++) a += g[d], a = b(a, &quot;+-a^+6&quot;);
          a = b(a, &quot;+-3^+b+-f&quot;);
          a ^= Number(e[1]) || 0;
          0 &gt; a &amp;&amp; (a = (a &amp; 2147483647) + 2147483648);
          a `%= 1E6;
          return a.toString() + &quot;.&quot; + (a ^ h)
      }
   )
   Return script
}

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>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Tue, 14 Aug 2018 13:03:59 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127935#p127935</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK | Требуется код из AHK переводчика.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127902#p127902</link>
			<description><![CDATA[<p>Мой велосипед...<br />Даю чтобы Вы разобрали, но написали нормальный код ибо это полная ахинея, хоть и работает.</p><div class="codebox"><pre><code>; В трее ПКМ по скрипту
#Warn, All
#Warn
#SingleInstance, force
Menu, Tray, Icon, upload.ico, 1, 1
Menu, Tray, NoStandard
Menu, Tray, Add, ru &gt; en%a_tab%Альт+1, !1
Menu, Tray, Add, en &gt; ru%a_tab%Альт+2, !2
Menu, Tray, Add, ua &gt; ru%a_tab%Альт+3, !3
Menu, Tray, Add,
Menu, Tray, Add, Перезагрузить%a_tab%F4, F4
Menu, Tray, Add, Выход%a_tab%F5, F5
DetectHiddenWindows, on
ComObjError(false)
Suspend
goto, ier

!1::
ie.Navigate(&quot;https://translate.google.com/#ru/en/&quot; Clipboard)
Suspend
goto tr

!2::
ie.Navigate(&quot;https://translate.google.com/#en/ru/&quot; Clipboard)
Suspend
goto tr

!3::
ie.Navigate(&quot;https://translate.google.com/#uk/ru/&quot; Clipboard)
Suspend
goto tr

tr:
while ie.readystate &lt;&gt; 4 
	continue
try
    Clipboard := % ie.document.getElementById(&quot;result_box&quot;).innerText
catch
{
   MsgBox, 262160, Быстрый переводчик #qqlexa, Ошибка выполнения перевода., 2
   return
}
ie.quit
ier:
ie := ComObjCreate(&quot;InternetExplorer.Application&quot;)
ie.Visible := false ; false
Suspend
return

!4::
return

F4::
reload

F5::
ExitApp
</code></pre></div><p>Сделал это до просмотра коллекции скриптов, не ругайте пожалуйста. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (qqlexa)]]></author>
			<pubDate>Mon, 13 Aug 2018 18:06:05 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127902#p127902</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK | Требуется код из AHK переводчика.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127891#p127891</link>
			<description><![CDATA[<p><strong>pro100andrik94</strong><br />Возникает другой вопрос, я не то что выделить из него что то, прочитать скрипт этот не могу. Многочисленные функции это все, что я там могу увидеть</p>]]></description>
			<author><![CDATA[null@example.com (TwenKey)]]></author>
			<pubDate>Mon, 13 Aug 2018 15:52:45 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127891#p127891</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK | Требуется код из AHK переводчика.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127856#p127856</link>
			<description><![CDATA[<p><strong>TwenKey</strong><br /><a href="http://forum.script-coding.com/search.php?search_id=1141076389">Сам поиск</a>.<br /><a href="http://forum.script-coding.com/viewtopic.php?id=4492"> Результат</a>.<br />Как искали то?</p>]]></description>
			<author><![CDATA[null@example.com (pro100andrik94)]]></author>
			<pubDate>Sun, 12 Aug 2018 23:09:15 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127856#p127856</guid>
		</item>
		<item>
			<title><![CDATA[AHK | Требуется код из AHK переводчика.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127843#p127843</link>
			<description><![CDATA[<p>День добрый, сколько не искал, никак не смог найти AHK Переводчик из которого можно спереть часть кода. Что я хочу сделать: При нажатии на CTRL, у меня открывается чат и начинается запись моих действий в <strong>input</strong>. И собственно когда я закончу писать, нажимаю ENTER, текст стирается и переводится на английский( перевод только в одну калитку, с RU на EN ). Пытался что-то сделать с <strong>ie</strong>. Но мало того, что этот Internet Explorer, выделывается постоянно (Некоторые страницы не открываются, слава богу Google Translate открылся), так ещё и не смог нормально организовать перевод, видимо Гуглу не шибко выгодно, что-бы их переводчиком пользовались как коммерчески так и не особо. Но думаю возможно реализовать перевод и без открытия браузера в фоне или нет. Мне нужен просто кусочек кода который будет одну переменную переводить и складывать результат в другую. Код который у меня уже имеется:<br /></p><div class="codebox"><pre><code>
SendMode Input
#UseHook
#NoEnv
#SingleInstance, force

vkA2:: ;lctrl
{
sleep 1
Send {vk54} ; T
sleep 10
Input, ru_text, V, {enter}{esc}{vk54}

#ДействияПереводчика

SendPlay {backspace 100} ;Стираю русский текст, ибо больше способов не знаю :/
SendPlay %en_text%
}
return


</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (TwenKey)]]></author>
			<pubDate>Sun, 12 Aug 2018 14:36:38 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127843#p127843</guid>
		</item>
	</channel>
</rss>
