<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: закрытые скрипта из другого по pid]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11638</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11638&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: закрытые скрипта из другого по pid».]]></description>
		<lastBuildDate>Sat, 28 May 2016 00:37:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104346#p104346</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>лучше просто<br /></p><div class="codebox"><pre><code>PostMessage(&quot;Slave script.ahk&quot;, 1)
...
SetTitleMatchMode, 2</code></pre></div></blockquote></div><p>Да, спасибо так намного удобнее <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Sat, 28 May 2016 00:37:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104346#p104346</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104345#p104345</link>
			<description><![CDATA[<p>Ну, я б не так сделал:<br />Вместо<br /></p><div class="codebox"><pre><code>F2::PostMessage(&quot;D:\Функции и библиотеки\второй скрипт получает от первого\Slave script.ahk - AutoHotkey v1.1.22.09&quot;, 1)
...
SetTitleMatchMode, 3
</code></pre></div><p>лучше просто<br /></p><div class="codebox"><pre><code>PostMessage(&quot;Slave script.ahk&quot;, 1)
...
SetTitleMatchMode, 2</code></pre></div><p>иначе вы будете привязаны к папке.<br />Читайте SetTitleMatchMode.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 28 May 2016 00:24:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104345#p104345</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104344#p104344</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>А вы попробуйте открыть главное окно принимающего скрипта и посмотреть на его заголовок. Потом сравните с тем, что вы посылаете (ваша переменная Receiver).</p></blockquote></div><p>Спасибо! Проблема оказалась в этом. Ну а так же не надо было удалят ничего оригинального кода функции. Вот что у меня вышло.<br />Первый скрипт master:<br /></p><div class="codebox"><pre><code>Run,  slave script.ahk,,,proces_id

global proces_id

F2::PostMessage(&quot;D:\Функции и библиотеки\второй скрипт получает от первого\Slave script.ahk - AutoHotkey v1.1.22.09&quot;, 1)	; exits slave script

PostMessage(Receiver, Message) {
	oldTMM := A_TitleMatchMode, oldDHW := A_DetectHiddenWindows
	SetTitleMatchMode, 3
	DetectHiddenWindows, on
	PostMessage, 0x1001,%Message%,,, %Receiver% ahk_pid %proces_id%
	SetTitleMatchMode, %oldTMM%
	DetectHiddenWindows, %oldDHW%
}</code></pre></div><p>Второй скрипт slave script:<br /></p><div class="codebox"><pre><code>OnMessage(0x1001,&quot;ReceiveMessage&quot;)
return

ReceiveMessage(Message) {
	if Message = 1
       msgbox, off
	ExitApp
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Fri, 27 May 2016 23:53:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104344#p104344</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104343#p104343</link>
			<description><![CDATA[<p>А вы попробуйте открыть главное окно принимающего скрипта и посмотреть на его заголовок. Потом сравните с тем, что вы посылаете (ваша переменная Receiver).</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 May 2016 21:55:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104343#p104343</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104342#p104342</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Во-первых, из вашего кода непонятно, чему равна переменная Receiver, во-вторых, второй параметр PostMessage должен быть выражением, т. е. переменные пишутся без знаков процента.</p></blockquote></div><p>Приведу код оригинала рабочий. <br />Первый скрипт master:<br /></p><div class="codebox"><pre><code>F1::PostMessage(&quot;Slave script&quot;, 1)	; exits slave script

PostMessage(Receiver, Message) {
	oldTMM := A_TitleMatchMode, oldDHW := A_DetectHiddenWindows
	SetTitleMatchMode, 3
	DetectHiddenWindows, on
	PostMessage, 0x1001,%Message%,,, %Receiver% ahk_class AutoHotkeyGUI
	SetTitleMatchMode, %oldTMM%
	DetectHiddenWindows, %oldDHW%
}</code></pre></div><p>Второй скрипт который называется Slave script:<br /></p><div class="codebox"><pre><code>Progress, m2 b fs13 zh0 WMn700, Slave script is running
Gui 99: show, hide, Slave script ; hidden &quot;message receiver window&quot;
OnMessage(0x1001,&quot;ReceiveMessage&quot;)
return

ReceiveMessage(Message) {
	if Message = 1
	ExitApp
}</code></pre></div><p>Как видно из первого скрипта master переменная Receiver это название скрипта, который получит сообщение. Сами пишем название.<br />Насчет без процента я не знаю, оригинал привел и он работает. Как из этого сделать что бы функция отправляла по пиду, а не по классу?</p>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Fri, 27 May 2016 21:46:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104342#p104342</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104341#p104341</link>
			<description><![CDATA[<p>Во-первых, из вашего кода непонятно, чему равна переменная Receiver, во-вторых, второй параметр PostMessage должен быть выражением, т. е. переменные пишутся без знаков процента.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 May 2016 21:26:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104341#p104341</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104339#p104339</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Ну, если Receiver — переменная, и proces_id — тоже переменная, то почему у вас они в одном и том же параметре по-разному оформлены?</p></blockquote></div><p>Подправил функцию:<br /></p><div class="codebox"><pre><code>PostMessage(Receiver, Message) {
    DetectHiddenWindows, on ; что бы воспринимать скрытые окна
	PostMessage, 0x1001,%Message%,,, %Receiver% ahk_pid %proces_id%
}</code></pre></div><p>Не работает.</p>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Fri, 27 May 2016 21:07:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104339#p104339</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104331#p104331</link>
			<description><![CDATA[<p>Ну, если Receiver — переменная, и proces_id — тоже переменная, то почему у вас они в одном и том же параметре по-разному оформлены?<br /></p><div class="quotebox"><cite>Dworkin пишет:</cite><blockquote><div class="codebox"><pre><code>%Receiver% ahk_pid proces_id</code></pre></div></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 May 2016 16:58:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104331#p104331</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104330#p104330</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>А Receiver — это строка, или переменная?</p></blockquote></div><p>Receiver - это тоже переменная. Указывается какое окно(скрипт) должен(но) получить сообщение.<br />Message - тоже переменная. Это то что получит второй скрипт. Для удобства посылаем 1 во второй скрипт. И когда второй скрипт получить 1, то выполнит подпрограмму, то есть закрытие.</p>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Fri, 27 May 2016 16:26:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104330#p104330</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104329#p104329</link>
			<description><![CDATA[<div class="quotebox"><cite>Dworkin пишет:</cite><blockquote><p>proces_id - это переменная</p></blockquote></div><p>А Receiver — это строка, или переменная?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 May 2016 16:19:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104329#p104329</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104328#p104328</link>
			<description><![CDATA[<p>proces_id - это переменная.</p><p>Сделал переменную proces_id глобальной что бы ее функция прочитала и добавил в функцию DetectHiddenWindows, on.</p><p>Вот первый скрипт который запускает второй и посылает его скрытому окну:<br /></p><div class="codebox"><pre><code>Run,  slave script.ahk,,,proces_id

global proces_id ;объявляю глобальную переменную что бы использовать ее в функции

F2::PostMessage(&quot;Slave script&quot;, 1)	; exits slave script

PostMessage(Receiver, Message) {
    DetectHiddenWindows, on ; что бы воспринимать скрытые окна
	PostMessage, 0x1001,%Message%,,, %Receiver% ahk_pid proces_id
}</code></pre></div><p>Код второго скрипта:<br /></p><div class="codebox"><pre><code>OnMessage(0x1001,&quot;ReceiveMessage&quot;)

F3::
;выполняется что-то
return

ReceiveMessage(Message) {
	if Message = 1
    msgbox, Скрипт закрыт
	ExitApp
}</code></pre></div><p>Все равно не получается.</p><p>Кстати вот ссылка, которую нашел на этом форуме:<br /><a href="http://forum.script-coding.com/viewtopic.php?id=125">http://forum.script-coding.com/viewtopic.php?id=125</a></p>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Fri, 27 May 2016 16:18:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104328#p104328</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104319#p104319</link>
			<description><![CDATA[<div class="quotebox"><cite>Dworkin пишет:</cite><blockquote><p>Во второй скрипт.</p></blockquote></div><p>Сообщение нельзя послать «в скрипт». Его можно послать только окну. У всех скриптов есть скрытое окно, которому в данном случае сообщение и посылается. А что нужно сделать, чтобы команда воспринимала скрытые окна?</p><div class="quotebox"><cite>Dworkin пишет:</cite><blockquote><p>Я ее изменил что бы посылало во второй скрипт по пиду</p></blockquote></div><p>proces_id — это строка, или переменная?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 May 2016 15:03:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104319#p104319</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104313#p104313</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>А кому вы сообщение PostMessage посылаете?</p></blockquote></div><p>Во второй скрипт.</p><p>Вот функция, которая была:<br /></p><div class="codebox"><pre><code>PostMessage(Receiver, Message) {
	oldTMM := A_TitleMatchMode, oldDHW := A_DetectHiddenWindows
	SetTitleMatchMode, 3
	DetectHiddenWindows, on
	PostMessage, 0x1001,%Message%,,, %Receiver% ahk_class AutoHotkeyGUI
	SetTitleMatchMode, %oldTMM%
	DetectHiddenWindows, %oldDHW%
}</code></pre></div><p>Я ее изменил что бы посылало во второй скрипт по пиду:<br /></p><div class="codebox"><pre><code>PostMessage(Receiver, Message) {
	PostMessage, 0x1001,%Message%,,, %Receiver% ahk_pid proces_id
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Fri, 27 May 2016 14:56:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104313#p104313</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104309#p104309</link>
			<description><![CDATA[<div class="quotebox"><cite>Dworkin пишет:</cite><blockquote><p>Я нашел как, но там все через окна, а через пид не получается.</p></blockquote></div><p>А кому вы сообщение PostMessage посылаете?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 May 2016 14:36:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104309#p104309</guid>
		</item>
		<item>
			<title><![CDATA[AHK: закрытые скрипта из другого по pid]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104308#p104308</link>
			<description><![CDATA[<p>Добрый вечер.<br />Помогите пожалуйста. Надо с помощью первого скрипта, который запускает второй скрипт завершить второй скрипт через пид так что бы во втором скрипте выполнилась подпрограмма при выходе.<br />Я нашел как, но там все через окна, а через пид не получается.</p><p>Вот код в первом скрипте:<br /></p><div class="codebox"><pre><code>
Run,  slave script.ahk,,,proces_id

F2::PostMessage(&quot;Slave script&quot;, 1)	; exits slave script

PostMessage(Receiver, Message) {
	PostMessage, 0x1001,%Message%,,, %Receiver% ahk_pid proces_id
}
</code></pre></div><p>Вот код во втором скрипте:<br /></p><div class="codebox"><pre><code>

OnMessage(0x1001,&quot;ReceiveMessage&quot;)

F3::
;выполняется что-то
return

ReceiveMessage(Message) {
	if Message = 1
    msgbox, Скрипт закрыт
	ExitApp
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Fri, 27 May 2016 14:26:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104308#p104308</guid>
		</item>
	</channel>
</rss>
