<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Передача значения переменной между скриптами]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12909</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12909&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Передача значения переменной между скриптами».]]></description>
		<lastBuildDate>Sun, 13 Aug 2017 19:27:36 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Передача значения переменной между скриптами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=118222#p118222</link>
			<description><![CDATA[<p><strong>teadrinker</strong>, я прост один из вариантов сказал. Ясное дело что у меня не самая топовая идея, но если автор не совсем шарит в АХК, всякие сложные фокусы могут не понравиться ему).</p>]]></description>
			<author><![CDATA[null@example.com (belyankin12)]]></author>
			<pubDate>Sun, 13 Aug 2017 19:27:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=118222#p118222</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передача значения переменной между скриптами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=118216#p118216</link>
			<description><![CDATA[<p>Если второй скрипт - дочерний, то можно просто передать значение. А в другом случае ищите ответы в <a href="https://autohotkey.com/docs/commands/PostMessage.htm">SendMessage</a>.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Дочерний скрипт</div><div class="fancy_spoiler"><div class="codebox"><pre><code>
ScriptManage := {}                       ; создаём объект для управления скриптами
ScriptManage.Run := Func(&quot;RunScript&quot;)    ; создаём несколько методов
ScriptManage.Terminate := Func(&quot;TerminateScript&quot;)
ScriptManage.Send := Func(&quot;SendStringToScript&quot;)
OnExit, OnExit

Gui, +LastFound
Gui, Add, Edit, x10 vEdit, Это строчка, которая будет передана дочернему скрипту.
Gui, Add, Button, x+-79 y+10 w80 gButton, Send
Gui, Add, Button, gButton x10 yp wp Default, Run
GuiControl, Focus, Run
Gui, Show, % &quot;y&quot; A_ScreenHeight//3, Это главный скрипт:

Loop
{
   WinSetTitle, % &quot;Это главный скрипт: &quot; mod(A_Index, 100)
   Sleep, 100
}
return


GuiClose:
OnExit:
   for k, v in ScriptManage
      if k is integer
         ScriptManage.Terminate(k)
   ExitApp

Button:
   if (A_GuiControl = &quot;Run&quot;)
      ScriptManage.Run(1)   ; единица означает, что запускаем первый скрипт
                            ; у нас он один, но может быть сколько угодно
   if (A_GuiControl = &quot;Terminate&quot;)
      ScriptManage.Terminate(1)
   
   if (A_GuiControl = &quot;Send&quot;)
      ScriptManage.Send(1)
   
   if (A_GuiControl != &quot;Send&quot;)
      GuiControl,, % A_GuiControl, % A_GuiControl = &quot;Run&quot; ? &quot;Terminate&quot; : &quot;Run&quot;
   return

RunScript(this, n)   ; здесь this — вызывающий объект, n — номер скрипта, который будем запускать
{
   ;*********************** это текст скрипта, который будем запускать ************************
   Text1 =  
   (%    ; опция &quot;%&quot;, чтобы процент читался как литерал
      #NoTrayIcon 
      Gui, +AlwaysOnTop +ToolWindow
      Gui, Color, Gray
      Gui, Add, Progress, hwndhControl Border Background606060 x20 y20 w350 h50  
      Gui, Show, % &quot;NA w390 h90 y&quot; A_ScreenHeight//3 + 120

      Gui, 2:+Parent%hControl% -Caption +Lastfound
      Gui, 2:Color, 606060
      Gui, 2:Font, s21 cFFAA00, Verdana
      Gui, 2:Add, Text, x350 y6, Можно отправить сюда текст из главного скрипта!
      Gui, 2:Show, NA x0 y0
      WinGetPos,,, Width 

      OnMessage(0xC, &quot;WM_SETTEXT&quot;)
      Loop
      { 
          Gui, 2:Show, % &quot;NA y0 x&quot; i := i &lt; -Width ? 0 : i - 1 
          Sleep 10
      }
      return

      GuiClose:
         FileDelete, % A_ScriptFullPath
         ExitApp

      WM_SETTEXT(wp, lp)
      {
         global
         Text := StrGet(lp)
         Gui, 2:New, +Parent%hControl% -Caption +Lastfound
         Gui, 2:Color, 606060
         Gui, 2:Font, s21 cFFAA00, Verdana
         Gui, 2:Add, Text, x350 y6, % Text
         Gui, 2:Show, NA x0 y0
         i := 0
         WinGetPos,,, Width
         return 0
      }
   )
   ;******************************** ; конец текста скрипта ***********************************

   FilePath := A_Temp &quot;\_MyScript_&quot; A_TickCount &quot;.ahk&quot;
   FileAppend, % Text%n%, % FilePath
   Run, % FilePath,,, PID
   this[n] := {Path: FilePath, PID: PID}  ; сохраняем путь к файлу дочернего скрипта и его PID
}                                         ; в соответствующих ключах вызывающего объекта

TerminateScript(this, n)
{
   Critical
   Process, Close, % this[n].PID
   Process, WaitClose, % this[n].PID
   FileDelete, % this[n].Path
}

SendStringToScript(this, n)
{
   GuiControlGet, Text,, Edit1
   SendMessage, WM_SETTEXT := 0xC,, &amp;Text,, % &quot;ahk_pid &quot; this[n].PID
}
</code></pre></div><p>Взято <a href="http://forum.script-coding.com/viewtopic.php?pid=74627#p74627">отсюда</a></p></div></div>]]></description>
			<author><![CDATA[null@example.com (MandarinKa02)]]></author>
			<pubDate>Sun, 13 Aug 2017 18:24:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=118216#p118216</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передача значения переменной между скриптами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=118214#p118214</link>
			<description><![CDATA[<p><strong>belyankin12</strong>, можно, да только зачем?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 13 Aug 2017 18:19:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=118214#p118214</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передача значения переменной между скриптами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=118212#p118212</link>
			<description><![CDATA[<p>Можно записать переменную во внешнюю среду, а с дочернего скрипта прочитать её и отобразить.</p>]]></description>
			<author><![CDATA[null@example.com (belyankin12)]]></author>
			<pubDate>Sun, 13 Aug 2017 18:10:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=118212#p118212</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передача значения переменной между скриптами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=118211#p118211</link>
			<description><![CDATA[<p>Нельзя, но можно отправить значение переменной из одного скрипта в другой.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 13 Aug 2017 17:52:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=118211#p118211</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Передача значения переменной между скриптами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=118210#p118210</link>
			<description><![CDATA[<p>Недавно наткнулся на такой вопрос.<br />Имея два скрипта, задав в первом скрипте переменную &quot;bkw := 1&quot;.<br />Можно ли как -то отобразить эту переменную во втором скрипте, &quot;msgbox, % bkw&quot;?</p>]]></description>
			<author><![CDATA[null@example.com (slavafedora)]]></author>
			<pubDate>Sun, 13 Aug 2017 17:37:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=118210#p118210</guid>
		</item>
	</channel>
</rss>
