<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Скрипт вкл/выкл режим always on top для любого окна - помогите]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7057&amp;type=atom" />
	<updated>2012-04-05T14:42:21Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7057</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Скрипт вкл/выкл режим always on top для любого окна - помогите]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58872#p58872" />
			<content type="html"><![CDATA[<p>Такой вариант возможен, конечно <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <br />Поясню, зачем мне нужен был массив - ниже пример скрипта, включающего режим&nbsp; Always On Top <br />активного окна и добавляющего в заголовок окна надпись Always on top &quot;ON&quot;. Если хоткейнуть уже On Top окно, <br />скрипт выключает режим и убирает из заголовка надпись. На мой взгляд полезно знать, что такое<br />&quot;странное&quot; творится с этим дурацким окном <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /> Но есть пара вопросов, требующих доработки. <br />Надпись не хочет добавляться в explorer в win 7 и не понятно как быть с броузером, ведь у него<br />я вообще отключил titlebar. </p><p>В общем, надеюсь кому понравится:</p><div class="codebox"><pre><code>Array := Array()
ArrayTitle := Array()        
ArrayCount := 0

^SPACE::

WinGet, ontop, ID, A    
WinGetTitle, Title, ahk_id %ontop%
loop, %ArrayCount%
{
Value := Array[A_index]
if (Value = ontop)
    {
    OldTitle := ArrayTitle[A_index]
    WinSet, AlwaysOnTop, Off, ahk_id %ontop%
    WinSetTitle, ahk_id %ontop%, , %OldTitle%
    RemovedValue := Array.Remove(A_index)
    RemovedValue := ArrayTitle.Remove(A_index)
    ArrayCount -= 1
    Return
    }
}

ArrayCount += 1
Array[ArrayCount] := ontop
ArrayTitle[ArrayCount] := Title
WinSet, AlwaysOnTop, On, ahk_id %ontop%
WinSetTitle, ahk_id %ontop%, , %Title% - Always on top &quot;ON&quot;

Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Kamagi]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27024</uri>
			</author>
			<updated>2012-04-05T14:42:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58872#p58872</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Скрипт вкл/выкл режим always on top для любого окна - помогите]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58868#p58868" />
			<content type="html"><![CDATA[<p>По поводу «Скрипт вкл/выкл режим always on top»:<br /></p><div class="codebox"><pre><code>^Space::
    MouseGetPos,,, hWnd
    WinSet, AlwaysOnTop, Toggle, ahk_id %hWnd%
    return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2012-04-05T13:30:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58868#p58868</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Скрипт вкл/выкл режим always on top для любого окна - помогите]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58867#p58867" />
			<content type="html"><![CDATA[<p>Гм, я пока не разобрался, где массив, а где псевдо, но вот рабочий скрипт:</p><div class="codebox"><pre><code>Array := Array()         
ArrayCount := 0

^SPACE::

MouseGetPos, , , id_top,    

loop, %ArrayCount%
{
Value := Array[A_index] 
MsgBox, v- %value%`nid - %id_top%`nLopp
if (Value = id_top)
    {
    MsgBox, v- %value%`nAC - %ArrayCount%`nid - %id_top%`nold
    RemovedValue := Array.Remove(A_index)
    ArrayCount -= 1
    Return
    }
}

ArrayCount += 1
Array[ArrayCount] := id_top
MsgBox, id - %id_top%`n AC - %ArrayCount%`nNew

Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Kamagi]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27024</uri>
			</author>
			<updated>2012-04-05T13:29:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58867#p58867</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Скрипт вкл/выкл режим always on top для любого окна - помогите]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58860#p58860" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>^SPACE::

MouseGetPos, , , id_top,    ;узнаю id окна под курсором мыши, записываю в id_top    
Array := Object()        ;создаю массив Array         

Loop {  ; начало теоретически бесконечного цикла

Value := Array%A_Index%     ; записываете в переменную value значение переменной Array1, Array2 …

if (Value := id_top)         ; записываете в переменную value значение переменной id_top и в случае если переменная id_top не была пуста выполняеье блок ниже
    {
    MsgBox, v- %value%`ni - %A_index%`nid - %id_top%`nold
    RemovedValue := Array.Remove(%id_top%)
    return  ; выход из бесконечного цикла (при первом же выполнении)
    }
}

Array%ArrayCount% := id_top ; записываете в переменную Array значение переменной id_top
MsgBox, v- %value%`ni - %A_index%`nid - %id_top%`nNew

Return</code></pre></div><p>Ошибка — везде. Продолжайте чтение раздела справки про массивы, «Pseudo-Arrays» — не массивы.</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2012-04-05T12:08:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58860#p58860</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Скрипт вкл/выкл режим always on top для любого окна - помогите]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58853#p58853" />
			<content type="html"><![CDATA[<p>Помогите разобраться, где ошибка. <br />Хочу реализовать через массив и заодно разобраться, как он работает. <br />По хоткею включается Always on top и в левом верхнем углу должен<br />выводиться gui, мол, такое-то окно в режиме Always on top.</p><div class="codebox"><pre><code>^SPACE::

MouseGetPos, , , id_top,    ;узнаю id окна под курсором мыши, записываю в id_top    
Array := Object()        ;создаю массив Array         

Loop {

Value := Array%A_Index%     ;проверяю, есть ли id_top в массиве

if (Value := id_top)         ;если есть, значит включен режим Always on top  
    {
    MsgBox, v- %value%`ni - %A_index%`nid - %id_top%`nold
    RemovedValue := Array.Remove(%id_top%)
    Return
    }
}

Array%ArrayCount% := id_top
MsgBox, v- %value%`ni - %A_index%`nid - %id_top%`nNew

Return</code></pre></div><p>Где-то ошибка, потому что условие if всегда верно, т.е. id_top уже есть в массиве, <br />хотя её туда ни кто не записывал.</p>]]></content>
			<author>
				<name><![CDATA[Kamagi]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27024</uri>
			</author>
			<updated>2012-04-05T10:12:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58853#p58853</id>
		</entry>
</feed>
