<?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=9698</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9698&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Ждать пока у программы появится крестик для закрытия».]]></description>
		<lastBuildDate>Wed, 11 Jun 2014 18:46:51 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Ждать пока у программы появится крестик для закрытия]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83831#p83831</link>
			<description><![CDATA[<p>Решил таким кодом:<br /></p><div class="codebox"><pre><code>hWnd:=WinExist(&quot;A&quot;)
hSysMenu:=DllCall(&quot;GetSystemMenu&quot;,&quot;Int&quot;,hWnd,&quot;Int&quot;,FALSE)
if hSysMenu != 0
   msgbox</code></pre></div><p>И все-таки мне непонятно, почему Acc не находит?</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 11 Jun 2014 18:46:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83831#p83831</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Ждать пока у программы появится крестик для закрытия]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83829#p83829</link>
			<description><![CDATA[<p>Вот такой код не работает:<br /></p><div class="codebox"><pre><code>f11::

Loop
    If ExistAccName(WinExist(&quot;A&quot;), &quot;Close&quot;)  
        MsgBox
    return 

ExistAccName(winid, Desc)
{
    if !IsObject(AccObj := Acc_ObjectFromWindow(winid))
        Return 0 ;  &quot;Не удалось получить IAccessible&quot;  
    Return FindAccName(AccObj, Desc) ? 1 : 0
}    

FindAccName(AccObj, Desc)
{    
    try if (AccObj.accName(0) = Desc)  
        Return 1

    for k, v in Acc_Children(AccObj)
        if FindAccName(v, Desc)  
            Return 1
}  </code></pre></div><p>А такой работает (при навидении мышкой на крестик выскакивает msgbox):<br /></p><div class="codebox"><pre><code>loop
{
   Acc :=    Acc_ObjectFromPoint(child) 
   if   (Acc.accName(child)=&quot;Close&quot;)
      msgbox
}</code></pre></div><p>Что изменить в первом, чтобы при нахождении крестика в активном окне выдавался msgbox?</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 11 Jun 2014 16:26:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83829#p83829</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Ждать пока у программы появится крестик для закрытия]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83828#p83828</link>
			<description><![CDATA[<p>А почему через AccDescription не получается?</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 11 Jun 2014 15:11:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83828#p83828</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Ждать пока у программы появится крестик для закрытия]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83820#p83820</link>
			<description><![CDATA[<p>Возможно SetWinEventHook, и возможно <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/dd318066(v=vs.85).aspx">EVENT_OBJECT_CREATE</a>.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Wed, 11 Jun 2014 12:43:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83820#p83820</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Ждать пока у программы появится крестик для закрытия]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83818#p83818</link>
			<description><![CDATA[<p>Задача - дождаться пока загрузится программа.<br />Когда она загрузится появляется в правом углу крестик для закрытия.<br />Как этот момент определить?<br />Через Aсс не получается.<br /></p><div class="codebox"><pre><code>Loop
    If ExistAccDescription(WinExist(&quot;A&quot;), &quot;Closes the window&quot;)  
        MsgBox
    return 

ExistAccDescription(winid, Desc)
{
    if !IsObject(AccObj := Acc_ObjectFromWindow(winid))
        Return 0 ;  &quot;Не удалось получить IAccessible&quot;  
    Return FindAccDescription(AccObj, Desc) ? 1 : 0
}    

FindAccDescription(AccObj, Desc)
{    
    try if (AccObj.accDescription(0) = Desc)  
        Return 1

    for k, v in Acc_Children(AccObj)
        if FindAccDescription(v, Desc)  
            Return 1
}  </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 11 Jun 2014 12:38:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83818#p83818</guid>
		</item>
	</channel>
</rss>
