<?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=6028</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6028&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Запомнить порядок активации окон».]]></description>
		<lastBuildDate>Wed, 27 Jul 2011 01:04:15 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50212#p50212</link>
			<description><![CDATA[<p>Grey, спасибо, работает!</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Wed, 27 Jul 2011 01:04:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50212#p50212</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50183#p50183</link>
			<description><![CDATA[<div class="codebox"><pre><code>DetectHiddenWindows, On
SetWinDelay, 0
TH := 6
Capacity := 10
WinArray := []
Gui, +LastFound +ToolWindow -Caption +AlwaysOnTop +Disabled
WinGet, FrameID
Gui, Color, Yellow
SetTimer, Frame, 50
Loop
   {
      WinGet, ID,, A
      If (!ChangeActiveHotkey &amp;&amp; ID != WinArray.1)
         {
            WinArray.Insert(1, ID)
            WinArray.Remove(Capacity + 1)
            CurrentWin = 1
         }
      ChangeActiveHotkey =
      WinWaitNotActive % &quot;ahk_id&quot; ID
   }
Return

Frame:
   WinGetPos, X, Y, W, H, A
   If (X = XPrev &amp;&amp; Y = YPrev &amp;&amp; W = WPrev &amp;&amp; H = HPrev)
      Return
   XPrev := X, YPrev := Y, WPrev := W, HPrev := H
   X -= TH, Y -= TH, W += 2*TH, H += 2*TH
   Gui, Show, x%X% y%Y% w%W% h%H% Hide
   Options := &quot;0-0 &quot;W &quot;-0 &quot;W &quot;-&quot;H &quot; 0-&quot;H &quot; 0-0 &quot;TH &quot;-&quot;TH
   . &quot; &quot;W-TH &quot;-&quot;TH &quot; &quot;W-TH &quot;-&quot;H-TH &quot; &quot;TH &quot;-&quot;H-TH &quot; &quot;TH &quot;-&quot;TH
   WinSet, Region, % Options, % &quot;ahk_id&quot; FrameID
   Gui, Show, NA
   Return

^Left::
^Right::
   limit := A_ThisHotkey = &quot;^Left&quot; ? WinArray.MaxIndex() : 1
   If (CurrentWin = limit)
      Return
   ChangeActiveHotkey = 1
   CurrentWin := A_ThisHotkey = &quot;^Left&quot; ? ++CurrentWin : --CurrentWin
   WinActivate % &quot;ahk_id &quot; WinArray[CurrentWin]
   Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Grey)]]></author>
			<pubDate>Tue, 26 Jul 2011 00:36:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50183#p50183</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50180#p50180</link>
			<description><![CDATA[<p>Попытался внести код в уже готовый скрипт, где уже работают другие функции и потерпел фиаско. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /><br />&nbsp; Если этот код не ставить первым - он не выполняется. У меня уже есть такой фрагмент, который должен стоять первым, чтобы выполняться:</p><div class="codebox"><pre><code>;--------------  Рамка
TH = 6   ; толщина рамки

   SetWinDelay, 0
   Gui, +LastFound +ToolWindow -Caption +AlwaysOnTop +Disabled
   WinGet, ID
   Gui, Color, Yellow

   SetTimer, Frame, 50
   Return

Frame:
   WinGetPos, X, Y, W, H, A
   if (X = XPrev &amp;&amp; Y = YPrev &amp;&amp; W = WPrev &amp;&amp; H = HPrev)
      Return

   XPrev := X, YPrev := Y, WPrev := W, HPrev := H
   X -= TH, Y -= TH, W += 2*TH, H += 2*TH

   Gui, Show, x%X% y%Y% w%W% h%H% Hide
   Options := &quot;0-0 &quot; W &quot;-0 &quot; W &quot;-&quot; H &quot; 0-&quot; H &quot; 0-0 &quot; TH &quot;-&quot; TH
      . &quot; &quot; W-TH &quot;-&quot; TH &quot; &quot; W-TH &quot;-&quot; H-TH &quot; &quot; TH &quot;-&quot; H-TH &quot; &quot; TH &quot;-&quot; TH
   DetectHiddenWindows, On
   WinSet, Region, % Options, ahk_id %ID%
   Gui, Show, NA
   Return</code></pre></div><p>Что нужно сделать, чтобы они оба кода работали в одном скрипте?</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Mon, 25 Jul 2011 22:45:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50180#p50180</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50148#p50148</link>
			<description><![CDATA[<p>teadrinker, всё работает отлично! Безумно благодарен!</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Sun, 24 Jul 2011 11:37:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50148#p50148</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50123#p50123</link>
			<description><![CDATA[<p>Спасибо, помогло!</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Fri, 22 Jul 2011 23:27:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50123#p50123</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50121#p50121</link>
			<description><![CDATA[<p>Для совместимости со скриптами, написанными под AHK-basic, лучше пользоваться ANSI-версией AHK_L. Если всё же установлена Unicode-версия, то под неё скрипты нужно сохранять в формате Utf-8.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 22 Jul 2011 22:42:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50121#p50121</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50119#p50119</link>
			<description><![CDATA[<p>Обновил. Из того, что успел проверить - работает отлично. К сожалению отрубилась половина клавишей в другом скрипте, скорее всего из-за обновления. Разбираюсь.</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Fri, 22 Jul 2011 22:36:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50119#p50119</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50118#p50118</link>
			<description><![CDATA[<p>Нет, боюсь, у тебя старая версия AHK! Обнови.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 22 Jul 2011 19:53:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50118#p50118</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50117#p50117</link>
			<description><![CDATA[<p>Ух ты! И коротко так получилось! Здорово! Только он что-то на <br /></p><div class="codebox"><pre><code>WinArray.1</code></pre></div><p>ругается. Неврный символ?</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Fri, 22 Jul 2011 19:43:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50117#p50117</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50098#p50098</link>
			<description><![CDATA[<p>Мой вариант (без учёта несуществования окна):<br /></p><div class="codebox"><pre><code>   Capacity = 10   ; сколько окон запоминать

   WinArray := []
   Loop
   {
      WinGet, ID,, A
      if (!ChangeActiveHotkey &amp;&amp; ID != WinArray.1)
      {
         WinArray.Insert(1, ID)
         WinArray.Remove(Capacity + 1)
         CurrentWin = 1
      }
      ChangeActiveHotkey =
      WinWaitNotActive, ahk_id %ID%
   }
   Return

^Left::
^Right::
   limit := A_ThisHotkey = &quot;^Left&quot; ? WinArray.MaxIndex() : 1
   if (CurrentWin = limit)
      Return
      
   ChangeActiveHotkey = 1
   CurrentWin := A_ThisHotkey = &quot;^Left&quot; ? ++CurrentWin : --CurrentWin
   WinActivate, % &quot;ahk_id &quot; WinArray[CurrentWin]
   Return</code></pre></div><p>Листает по горячим клавишам <em>Ctrl + Left</em> и <em>Ctrl + Right</em>.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 22 Jul 2011 11:18:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50098#p50098</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50086#p50086</link>
			<description><![CDATA[<p>Забыл глаза разуть когда документацию читал <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (MixaLich)]]></author>
			<pubDate>Fri, 22 Jul 2011 09:05:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50086#p50086</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50085#p50085</link>
			<description><![CDATA[<p>WinWaitNotActive, такой команды не знал, в хозяйстве пригодится:).</p>]]></description>
			<author><![CDATA[null@example.com (MixaLich)]]></author>
			<pubDate>Fri, 22 Jul 2011 09:02:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50085#p50085</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50083#p50083</link>
			<description><![CDATA[<div class="quotebox"><cite>MixaLich пишет:</cite><blockquote><p>Да, в этом варианте кликать для запоминания надо. По иному в голову пока ничего больше не приходит.</p></blockquote></div><p>Примерно так:<br /></p><div class="codebox"><pre><code>MAX_WINDOWS := 3 ;сколько окон запоминаем
stop		:= 0

;обнуляем все дескрипторы
i:=0
while i&lt;=MAX_WINDOWS
{
	window%i%:=0
	i:=i+1
}

WinGet, cur, ID, A
window1:=cur
while stop==0
{
	;ждём пока текущее окно не потеряет фокус
	WinWaitNotActive ahk_id%cur%
	;получаем дескриптор нового активного окна
	WinGet, cur, ID, A
	;если получить не удалось, то ждём 1/20 секунды и пробуем снова.
	;Если и тогда не получится, то переходим к следующему витку цикла
	if cur=
	{
		sleep 50
		WinGet, cur, ID, A
		if cur=
			continue
	}
	;ищем текущее окно в сохранённых
	i := 1
	while i&lt;= MAX_WINDOWS
	{
		if(cur=window%i%)
		{
			break
		}
		i:=i+1
	}
	;если нету, то будем менять последний
	if(i&gt;MAX_WINDOWS)
	{
		i:=MAX_WINDOWS
	}
	;меняем
	while i &gt; 1
	{
		k := i-1
		window%i% := window%k%
		i := k
	}
	window1 := cur
}
;===========================================

F2::
	;если окно ещё существует, то показываем его, иначе выводим сообщение
	ifWinExist ahk_id%window2%
		WinActivate ahk_id%window2%
	else
		msgbox Окна уже нет
return
F3::
	ifWinExist ahk_id%window3%
		WinActivate ahk_id%window3%
	else
		msgbox Окна уже нет
return
F12:: 
	;прервать слежку за окнами после смены этого окна
	stop := 1
return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Fri, 22 Jul 2011 08:39:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50083#p50083</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50053#p50053</link>
			<description><![CDATA[<p>Да, в этом варианте кликать для запоминания надо. По иному в голову пока ничего больше не приходит.</p>]]></description>
			<author><![CDATA[null@example.com (MixaLich)]]></author>
			<pubDate>Thu, 21 Jul 2011 11:46:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50053#p50053</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запомнить порядок активации окон]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50050#p50050</link>
			<description><![CDATA[<p>Получается, что без специальной активации с помощью клика мышкой запоминания не происходит?</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Thu, 21 Jul 2011 10:42:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50050#p50050</guid>
		</item>
	</channel>
</rss>
