<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: закрытые скрипта из другого по pid]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11638&amp;type=atom" />
	<updated>2016-05-28T00:37:01Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=11638</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104346#p104346" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2016-05-28T00:37:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104346#p104346</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104345#p104345" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-28T00:24:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104345#p104345</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104344#p104344" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2016-05-27T23:53:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104344#p104344</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104343#p104343" />
			<content type="html"><![CDATA[<p>А вы попробуйте открыть главное окно принимающего скрипта и посмотреть на его заголовок. Потом сравните с тем, что вы посылаете (ваша переменная Receiver).</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-27T21:55:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104343#p104343</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104342#p104342" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2016-05-27T21:46:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104342#p104342</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104341#p104341" />
			<content type="html"><![CDATA[<p>Во-первых, из вашего кода непонятно, чему равна переменная Receiver, во-вторых, второй параметр PostMessage должен быть выражением, т. е. переменные пишутся без знаков процента.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-27T21:26:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104341#p104341</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104339#p104339" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2016-05-27T21:07:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104339#p104339</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104331#p104331" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-27T16:58:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104331#p104331</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104330#p104330" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>А Receiver — это строка, или переменная?</p></blockquote></div><p>Receiver - это тоже переменная. Указывается какое окно(скрипт) должен(но) получить сообщение.<br />Message - тоже переменная. Это то что получит второй скрипт. Для удобства посылаем 1 во второй скрипт. И когда второй скрипт получить 1, то выполнит подпрограмму, то есть закрытие.</p>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2016-05-27T16:26:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104330#p104330</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104329#p104329" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Dworkin пишет:</cite><blockquote><p>proces_id - это переменная</p></blockquote></div><p>А Receiver — это строка, или переменная?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-27T16:19:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104329#p104329</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104328#p104328" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2016-05-27T16:18:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104328#p104328</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104319#p104319" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-27T15:03:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104319#p104319</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104313#p104313" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2016-05-27T14:56:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104313#p104313</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104309#p104309" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Dworkin пишет:</cite><blockquote><p>Я нашел как, но там все через окна, а через пид не получается.</p></blockquote></div><p>А кому вы сообщение PostMessage посылаете?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-27T14:36:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104309#p104309</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: закрытые скрипта из другого по pid]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104308#p104308" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2016-05-27T14:26:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104308#p104308</id>
		</entry>
</feed>
