<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Можно ли отправлять команды в "неактивные окна" ?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8043&amp;type=atom" />
	<updated>2013-02-06T03:22:57Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8043</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Можно ли отправлять команды в "неактивные окна" ?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=69143#p69143" />
			<content type="html"><![CDATA[<p>Да, вы неправильно поняли. Или просто не желаете разбираться, полагаясь на «помощь». Учитывая приложенные вами фрагменты кода, я считаю верным второе предположение.</p><div class="quotebox"><blockquote><p>Можно ли отправлять команды в &quot;неактивные окна&quot;</p></blockquote></div><p>ControlClick и ControlSend отправляют нажатия и клики в неактивные окна. Не нужно использовать термин «команды» в этом контексте.</p><p>Код из первого сообщения сперва активирует окно под курсором, а после проверяет &quot;а что это мы там активировали&quot;. Если нажатия и клики нужно отправлять в определённые окна независимо от того, являются ли они активными — достаточно:<br /></p><div class="codebox"><pre><code>#Persistent
SetTimer, AntiIdle, 300
return

AntiIdle:
    if WinExist(&quot;Player Still Active&quot;)
        ControlClick Yes

    if WinExist(&quot;Are you sure?&quot;)
        ControlClick Check

    if WinExist(&quot;User Message&quot;)
        ControlClick x165 y149

    if WinExist(&quot;Member Message&quot;)
        ControlClick x167 y149

    if WinExist(&quot;Choose your buy-in amount&quot;)
        ControlClick x88 y452

    if WinExist(&quot;Auto Post Blinds&quot;)
        ControlClick Close
    return</code></pre></div><p>Функция WinExist() устанавливает «последнее найденное окно». Команда ControlClick расположенная после вызова WinExist() «кликает» в найденном окне.</p><p>Подразумевается, что окна возникают периодически, полезной информации не отображают и должны быть как можно скорее закрыты фактом выполнения с ними указанных действий.</p><p>#IfWinActive — директива. Место её расположения в коде не является началом подпрограммы. Директивы #if… влияют лишь на нижележащие горячие клавиши и строки автозамены. В справке, в соответствующей статье, об этом говорится.<br />Не нужно проявлять «чудеса эквилибристики» пытаясь «угадать» как из наличествующих команд сложить нужный скрипт. Посмотрите примеры в коллекции — там бредовых конструкций в коде нет, почитайте справку — там есть ответы на большинство вопросов.</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-02-06T03:22:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=69143#p69143</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Можно ли отправлять команды в "неактивные окна" ?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=69142#p69142" />
			<content type="html"><![CDATA[<p>Не помогло, или я не правильно понял ?</p><div class="codebox"><pre><code>#IfWinActive ahk_class GFX_INT_DLG_WINDOW_GAME
WinWaitActive, ahk_class GFX_INT_DLG_WINDOW_GAME, , 2

$u::
ControlClick, x152 y338
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[cyberlife8]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29470</uri>
			</author>
			<updated>2013-02-06T00:26:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=69142#p69142</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Можно ли отправлять команды в "неактивные окна" ?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=69141#p69141" />
			<content type="html"><![CDATA[<p>1. можно использовать winwaitactive после winactivate, но окна по-прежнему будут видны.<br />2. без активации окна можно сделать только через сложные штуки вроде PostMessage.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-02-05T22:00:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=69141#p69141</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Можно ли отправлять команды в "неактивные окна" ?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=69140#p69140" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>cyberlife8, ознакомься с этой темой, отредактируй свой пост. Код должен быть оформлен правильно, а вот прятать под спойлер его не нужно.</p></blockquote></div><p>Переоформил.</p>]]></content>
			<author>
				<name><![CDATA[cyberlife8]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29470</uri>
			</author>
			<updated>2013-02-05T20:01:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=69140#p69140</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Можно ли отправлять команды в "неактивные окна" ?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=69113#p69113" />
			<content type="html"><![CDATA[<p><span style="color: #008800"><strong>cyberlife8</strong>, ознакомься с <a href="http://forum.script-coding.com/viewtopic.php?id=6148">этой</a> темой, отредактируй свой пост.</span> Код должен быть оформлен правильно, а вот прятать под спойлер его не нужно.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2013-02-04T21:16:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=69113#p69113</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Можно ли отправлять команды в "неактивные окна" ?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=69110#p69110" />
			<content type="html"><![CDATA[<p>Здравствуйте всем ! <br />Есть у меня один скрипт (спасибо за помощь <strong>ypppu</strong> и <strong>creature.ws</strong>), который закрывает некоторые окошки и посылает &quot;СontrolClick&quot; в <span class="bbu">определённые окна под курсором</span>, то есть, если окно <br /></p><div class="codebox"><pre><code> (ahk_class GFX_INT_DLG_WINDOW_GAME)</code></pre></div><p>то<br /></p><div class="codebox"><pre><code>u:: 
ControlClick, x152  y338</code></pre></div><p> а если окно </p><div class="codebox"><pre><code>(WinActive ahk_class #32770)</code></pre></div><p> тогда<br /></p><div class="codebox"><pre><code>u::
ControlClick, x208 y330
Sleep 10,
ControlClick, x208 y330
Sleep 10,
ControlClick, x213 y294
return
</code></pre></div><p>Всё работает хорошо, но только если открываю больше 5 окон, начинаются небольшие тормоза и окна не успевают &quot;подниматься наверх&quot; и соответственно controlClick в них не посылается. <br />Можно ли сделать так, чтобы команды посылались без активации окна ? </p><p>Вот сам скрипт:&nbsp; &nbsp;<br /></p><div class="codebox"><pre><code>#Persistent

SetTitleMatchMode, 1

Loop
{
    Loop, 4
    {
    MouseGetPos, , , Win
    If(Win != PrevWin)
        {
        PrevWin := Win
        WinActivate, ahk_id %Win%
        }   
    Sleep, 10
    }
GoSub, AntiIdle
}

AntiIdle:
    WinExist(&quot;A&quot;)
    WinGetTitle winTitle

    if (winTitle == &quot;Player Still Active&quot;)
        ControlClick Yes

      else if (winTitle == &quot;Are you sure?&quot;)
        ControlClick Check, 

    else if (winTitle == &quot;User Message&quot;)
        ControlClick, x165 y149

 else if (winTitle == &quot;Member Message&quot;)
        ControlClick, x167 y149

 else if (winTitle == &quot;Choose your buy-in amount&quot;)
        ControlClick, x88 y452

else if (winTitle == &quot;Auto Post Blinds&quot;)
        ControlClick, Close
Return


F11::Suspend
F10::Pause



#IfWinActive ahk_class GFX_INT_DLG_WINDOW_GAME

$u::
ControlClick, x152  y338
return


$m::
ControlClick, x20 y352
return

$j::
ControlClick, x234 y338
return

$k::
ControlClick, x196 y371
Sleep, 20
ControlClick, x311 y324
Return

$i::
ControlClick, x227 y373
Sleep, 20
ControlClick, x311 y324
Return

$o::
ControlClick, x261 y371
Sleep, 20
ControlClick, x311 y324
Return


#IfWinActive ahk_class #32770
   WinActivate 

$u::

ControlClick, x208 y330
Sleep 10,
ControlClick, x208 y330
Sleep 10,
ControlClick, x213 y294
return

$j::
ControlClick, x339 y295
return

$k::
ControlClick, x422 y314
Sleep 10,
ControlClick, x419 y294
return

$i::
ControlClick, x387 y313
Sleep 10,
ControlClick, x419 y294
return

$o::
ControlClick, x353 y313
Sleep 10,
ControlClick, x419 y294
return

$m::
ControlClick, x304 y340
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[cyberlife8]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29470</uri>
			</author>
			<updated>2013-02-04T20:44:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=69110#p69110</id>
		</entry>
</feed>
