<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11047&amp;type=atom" />
	<updated>2015-11-01T07:28:53Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=11047</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98614#p98614" />
			<content type="html"><![CDATA[<p>Доработал функцию для удобства.<br /></p><div class="codebox"><pre><code>#singleinstance,force

run,%a_windir%\notepad.exe
winwait,ahk_class Notepad

hwnd:=WinExist(&quot;ahk_class Notepad&quot;)
hwndP:=WinExist(&quot;ahk_class Shell_TrayWnd&quot;)

;SetParent(hwnd,hwndP,&quot;MSTaskListWClass1&quot;,600) ; для 7-ки
SetParent(hwnd,hwndP,&quot;ToolbarWindow322&quot;,600) ; для XP



SetParent(hwnd,hNewParent,ClassNN=&quot;&quot;,x=0,y=0)
{
  if ClassNN
    ControlGet,hNewParent,Hwnd,,%ClassNN%,ahk_id %hNewParent%
  oldParent:=DllCall(&quot;SetParent&quot;,&quot;ptr&quot;,hwnd,&quot;ptr&quot;,hNewParent)
  WinMove,ahk_id %hwnd%,,%x%,%y%
  return oldParent
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2015-11-01T07:28:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98614#p98614</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98611#p98611" />
			<content type="html"><![CDATA[<p>Прошу извинить: да, целевое окно это то, которое нужно поместить внутрь другого.<br />Я имел в виду настоящее изчезновение, когда, например в ProcessExplorer - контекст. меню процесса - пункт &quot;window&quot; неактивен. Но блокнот так не ведёт себя, с ним нормально. А если некоторые изчезают, надо последить, чтоб у них не было &quot;поверх всех&quot;, и окно хоть краюшком не вылезало за рабочую область экрана. Достаточно, перемещая такое окно мышью, чуть вывести край за границу монитора, и при отпускании мыши окно изчезнет. Я когда-то сталкивался с этим изчезновением, какие-то спецстили были виноваты, сейчас пока не могу найти. Но это ерунда, ничем не мешает. <br />Потом, у меня, ужас, WinXP. У меня и другие странности с окнами бывают, гораздо более чудные, <a href="http://forum.script-coding.com/viewtopic.php?id=10522">например</a>.</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-10-31T21:57:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98611#p98611</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98602#p98602" />
			<content type="html"><![CDATA[<p>Дело в том что координаты того окна начинают отсчет от левого верхнего угла теперешнего родительского окна, и если, может другой скрипт, использует winmove, то окно теряется где-то в просторах окна теперешнего родителя. Тоже сначала не понял куда они исчезают, но потом растянул панель задач и они все оказались там.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2015-10-31T17:33:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98602#p98602</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98600#p98600" />
			<content type="html"><![CDATA[<p>У меня в результате экспериментов в памяти повисли две копии блокнота, видимые только в Диспетчере.</p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2015-10-31T17:02:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98600#p98600</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98597#p98597" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>целевое окно может изчезнуть</p></blockquote></div><p>Целевое окно это то, которое нужно поместить внутрь другого или то, в которое нужно поместить другое?</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2015-10-31T15:18:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98597#p98597</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98596#p98596" />
			<content type="html"><![CDATA[<p><strong>Alectric</strong>, спасибо большое, именно это требовалось. <br />Мои наблюдения: в некоторых случаях целевое окно (похоже, какие-то особые стили) перед запуском скрипта не должно иметь свойство &quot;AlwaysOnTop&quot;, и потом не должно хоть на пиксель вылезти за пределы видимого пространства монитора. Если эти условия нарушаются, целевое окно может изчезнуть (возможно, стать скрытым, не проверял).</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-10-31T12:38:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98596#p98596</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98588#p98588" />
			<content type="html"><![CDATA[<p>Вот так как-то:<br /></p><div class="codebox"><pre><code>#singleinstance,force

run,%a_windir%\notepad.exe
sleep,500
hwnd:=WinExist(&quot;ahk_class Notepad&quot;)

;hwndP:=WinExist(&quot;ahk_class Shell_TrayWnd&quot;)
;Set_Parent_by_hwnd(hwndP,hwnd)

Set_Parent_by_class(&quot;Shell_TrayWnd&quot;,hwnd)

WinMove,ahk_id %hwnd%,,800,0
Return

Set_Parent_by_hwnd(hParent,hwnd) ;http://autohotkey.com/board/topic/8142-setparent-function-make-a-gui-belong-to-another-window/
{
  Return DllCall( &quot;SetParent&quot;, &quot;ptr&quot;, hwnd, &quot;ptr&quot;, hParent )
}

Set_Parent_by_class(class,hwnd)
{
  hParent:=DllCall(&quot;FindWindowEx&quot;,&quot;ptr&quot;,0,&quot;ptr&quot;,0,&quot;str&quot;,class,&quot;uint&quot;,0,&quot;ptr&quot;)
  Return DllCall(&quot;SetParent&quot;,&quot;ptr&quot;,hwnd,&quot;ptr&quot;,hParent)
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2015-10-31T05:26:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98588#p98588</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98587#p98587" />
			<content type="html"><![CDATA[<p>Я не знаю, но: <br />1. я надеялся, что у такого окна будет неотъемлемое свойство &quot;поверх parent окна&quot;.<br />2. смотрю в ProcessExplorer св-ва notepad, вижу parent: AutoHotkey.exe<br />3. может, я вообще путаю с терминами (и неправильно озадачил тему), но имел в виду&nbsp; выстроить не&nbsp; процессы (notepad.exe), а именно окна — тогда, например, при перемещении родительского окна будет перемещаться и подчинённое (хотя, не уверен; возможно это дают какие-то доп. стили)</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-10-31T02:05:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98587#p98587</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98586#p98586" />
			<content type="html"><![CDATA[<p>Почему неправильный? Код абсолютно правильный, если задача была в том, чтобы</p><div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>придать произвольному окну (напр., notepad) свойство Own к окну панели задач (Taskbar), которая будет иметь свойство &quot;Parent&quot; к notepad?</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2015-10-30T23:45:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98586#p98586</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98585#p98585" />
			<content type="html"><![CDATA[<p>Думал, это знак вопроса запал: &quot;Так не сработает?&quot;.&nbsp; А оказалось: &quot;Так не сработает: вот тебе неправильный код&quot; <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-10-30T23:41:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98585#p98585</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98584#p98584" />
			<content type="html"><![CDATA[<p>Ну я и говорю, не сработает. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2015-10-30T23:10:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98584#p98584</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98583#p98583" />
			<content type="html"><![CDATA[<p>Не сработало, блокнот западает (с AlwaysOnTop).</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-10-30T23:07:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98583#p98583</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98582#p98582" />
			<content type="html"><![CDATA[<p>Так не сработает:<br /></p><div class="codebox"><pre><code>GWLP_HWNDPARENT := -8

Run, notepad,,, PID
WinWait, ahk_pid %PID%
hwnd_child := WinExist()
; WinSet, AlwaysOnTop

hwnd_owner := WinExist(&quot;ahk_class Shell_TrayWnd&quot;)

DllCall(&quot;SetWindowLongPtr&quot;, Ptr, hwnd_child, Int, GWLP_HWNDPARENT, Ptr, hwnd_owner)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2015-10-30T22:52:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98582#p98582</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98576#p98576" />
			<content type="html"><![CDATA[<p>Для того, чтоб разместить над таскбаром некое нужное мне информационное окошко, и чтобы оно не западало при кликах по таскбару. Я понимаю, что можно это сделать проверкой по таймеру, будет моргать так или иначе, но, думаю: вдруг есть известное решение без таймера.</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-10-30T19:21:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98576#p98576</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Сделать произвольное окно "Own" к панели задач ("Parent")]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=98571#p98571" />
			<content type="html"><![CDATA[<p>А для чего это?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2015-10-30T18:16:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=98571#p98571</id>
		</entry>
</feed>
