<?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=17136</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17136&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Клик со смещением».]]></description>
		<lastBuildDate>Tue, 24 May 2022 18:32:20 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Клик со смещением]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153340#p153340</link>
			<description><![CDATA[<div class="quotebox"><cite>yellow пишет:</cite><blockquote><p>Т.е. ErrorLevel по умолчанию равен 0</p></blockquote></div><p>Да, и поскольку запись<br /></p><div class="codebox"><pre><code>if ErrorLevel</code></pre></div><p>скрипт читает как &quot;если ErrorLevel = true&quot;, а true это натуральное число, а 0 это false, то эта запись сработает только в случае ошибки PixelSearch. Если нужно повесить действие на успешную проверку &quot;цвет найден&quot;, то надо или<br /></p><div class="codebox"><pre><code>
if (ErrorLevel = 0)
;или
if !ErrorLevel</code></pre></div><div class="quotebox"><cite>yellow пишет:</cite><blockquote><p>А как он будет искать следующий сигнал?</p></blockquote></div><p>Запись<br /></p><div class="codebox"><pre><code>
toggle := GetKeyState(&quot;Capslock&quot;, &quot;T&quot;)
if (toggle = 0)
	continue</code></pre></div><p>говорит: &quot;если капс включен, то выполняем цикл (и ищем цвет); если выключен, то возвращаем скрипт с этого места в начало петли, и до поиска пикселя он не доходит&quot;. Я и думаю, что как-то естественнее просто выключить скрипт, когда он не нужен, чем заставлять его постоянно выполнять &quot;проверка условия - возврат в начало цикла, проверка условия - возврат в начало цикла, проверка условия - возврат в начало цикла, проверка условия - возврат...&quot;</p>]]></description>
			<author><![CDATA[null@example.com (isxodnik)]]></author>
			<pubDate>Tue, 24 May 2022 18:32:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153340#p153340</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Клик со смещением]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153335#p153335</link>
			<description><![CDATA[<div class="quotebox"><cite>isxodnik пишет:</cite><blockquote><p>не единственная ваша ошибка, но больше не искал</p></blockquote></div><p>Т.е. Error Level по умолчанию равен 0, если не написано ничего.</p><div class="quotebox"><cite>isxodnik пишет:</cite><blockquote><p>может, проще остановить скрипт, чтоб не молотил зря?</p></blockquote></div><p>А как он будет искать следующий сигнал?</p><p>Отладочные сообщения тоже убираются обычно, но для начала нужно добиться стабильной работы.</p><div class="quotebox"><cite>isxodnik пишет:</cite><blockquote><p>Повтыкал в синтезатор по ссылке, так и не понял, как добиться зелёного сигнала.</p></blockquote></div><p>Да там надо заготовки композиций выбрать по кнопке &quot;Songs&quot;</p>]]></description>
			<author><![CDATA[null@example.com (yellow)]]></author>
			<pubDate>Tue, 24 May 2022 15:26:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153335#p153335</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Клик со смещением]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153331#p153331</link>
			<description><![CDATA[<div class="quotebox"><cite>yellow пишет:</cite><blockquote><div class="codebox"><pre><code>PixelSearch, Px, Py, 105, 484, 1174, 494, 0x97FF34, 3, Fast ;0x34FF97
if ErrorLevel 
	MsgBox, Найдено в at X%Px% Y%Py%. ;Но здесь координаты не пишутся в сообщении. они похоже равны 0 несмотря на то, что PixelSearch что-то там находит.
</code></pre></div></blockquote></div><p>В таком виде <strong>MsgBox</strong> появится, если <strong>PixelSearch</strong> НЕ найдёт пиксель нужного цвета. Вот рабочий вариант:<br /></p><div class="codebox"><pre><code>
PixelSearch, Px, Py, 105, 484, 1174, 494, 0x97FF34, 3, Fast
if (ErrorLevel = 0)
	MsgBox, Найдено в at X %Px% Y %Py%.</code></pre></div><p>Возможно, это не единственная ваша ошибка, но больше не искал. Повтыкал в синтезатор по ссылке, так и не понял, как добиться зелёного сигнала.</p><p>Может,<br /></p><div class="codebox"><pre><code>
CoordMode, Pixel, Client	;по идее не нужно?

C := 0x34FF97

Loop
	{
	Sleep, 100
	
	toggle := GetKeyState(&quot;Capslock&quot;, &quot;T&quot;)
	if (toggle = 0)	;если капс не нажат
		continue	;может, проще остановить скрипт, чтоб не молотил зря?
	
	PixelSearch, Px, Py, 105, 484, 1174, 494, C, 3, Fast 
	if (ErrorLevel = 0)
		{
		MouseMove, Px, Py + 50, 0
		ToolTip, тыкаю	;отладочное сообщение, убрать?
		Click
		Sleep, 	; ? возможно, сигналу нужно какое-то время, чтобы погаснуть, больше, чем 100 мс в начале цикла?
		}
	else
		ToolTip, Требуемый цвет в заданных границах не найден.
	}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (isxodnik)]]></author>
			<pubDate>Mon, 23 May 2022 18:03:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153331#p153331</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Клик со смещением]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153330#p153330</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Просто &#039;Loop&#039; например сделать.</p></blockquote></div><p>Нет с лупом почему-то 2 раза выполняется, там и в справке помоему даже написано что он должен минимум 1 раз выполнится после return поэтому он не подходит. Есть свои нюансы.<br /></p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p> или 2, если возникла проблема, которая помешала команде провести поиск.</p></blockquote></div><p>Вот в том и проблема что непонятно что за проблема у него может возникнуть, ErrorLevel же не расшифровывает свои проблемы, а в том что может быть значение отличное от 1 или 0- это дополнительная ветвь в алгоритме, которую никто почему-то в распространённых примерах не указывает. Если её не добавить в скрипте выходит ошибка по тем или иным причинам, а ты сидишь и думаешь - почему это?<br />Отступы автоматом не добавляются, незнаю как это сделать. Если я каждую строчку выравнивать буду - я умру от нервного истощения быстрее чем вы сможете прочитать без отступов.</p>]]></description>
			<author><![CDATA[null@example.com (yellow)]]></author>
			<pubDate>Mon, 23 May 2022 08:02:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153330#p153330</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Клик со смещением]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153302#p153302</link>
			<description><![CDATA[<p>&#039;While 1==1&#039; зачем так сложно? Просто &#039;Loop&#039; например сделать.<br />Что мешает зайти в <a href="https://www.autohotkey.com/docs/commands/PixelSearch.htm">справку</a> и прочитать про &#039;ErrorLevel&#039;?<br /></p><div class="quotebox"><blockquote><p>ErrorLevel устанавливается в 0, если цвет был найден в указанной области, 1, если он не был найден, или 2, если возникла проблема, которая помешала команде провести поиск.</p></blockquote></div><p>Отступы добавляйте, иначе код плохочитаемый выходит.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Fri, 20 May 2022 17:33:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153302#p153302</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Клик со смещением]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153301#p153301</link>
			<description><![CDATA[<p>Если долго смотреть на задающего вопрос, можно увидеть как он отвечает на него сам.<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>While 1==1 {
sleep 10
toggle := GetKeyState(&quot;Capslock&quot;, &quot;T&quot;)
sleep 10
if (toggle = 0)
continue
else
{
Sleep, 100
CoordMode, Pixel, Client
C := 0x34FF97  ;Искомый цвет 
sleep 10
PixelSearch, Px, Py, 105, 484, 1174, 494, C, 3, Fast 
sleep 10
if ErrorLevel 
{
ToolTip, Требуемый цвет в заданных границах не найден.
;MsgBox, не найден %ErrorLevel%
}
else 
{
;MsgBox, найден %ErrorLevel%
ToolTip, Координаты %Px% %Py%
Sleep, 3
ToolTip, Найдено 
MouseMove, Px, Py, 0,
ToolTip, Перемещаю в найденное
sleep 1
MouseMove, 0, 50, 0, R
ToolTip, Смещаю
sleep 1
ToolTip, тыкаю
Click
Sleep, 10
}
}
}
return</code></pre></div></div></div><p>Иногда проскальзывали двойные клики<br />Правда, значения Error level непонятны, они то 1, то 2, то 0, сдаётся мне и до конца непонятна суть этой фразы, им как-то по-другому надо пользоваться.</p>]]></description>
			<author><![CDATA[null@example.com (yellow)]]></author>
			<pubDate>Fri, 20 May 2022 16:52:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153301#p153301</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Клик со смещением]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153291#p153291</link>
			<description><![CDATA[<p>Ненашёл по поисковику подобное решение, или очень замороченные функции,<br />Должно же быть в ахк простое решение для смещения и клика по заданным координатам?<br />Там в целом надо найти точку одного цвета и ткнуть чуть ниже её<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>PixelSearch, Px, Py, 105, 484, 1174, 494, 0x34FF97, 3, Fast
Sleep, 300
if ErrorLevel
{
Click Px, Py-10, 1
}</code></pre></div></div></div><p>короче вот в этом вот приложении<a href="http://%20http://playpack.ru/game/igra_simulyator_klaviaturi.html"> http://playpack.ru/game/igra_simulyato … aturi.html</a> надо чтобы в полноэкранной развёрстке в пресетах Songs, находило зелёный сигнал над клавишей и её тыкало, но что-то ни цвет не находит, и тыкает в текущую координату.<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>PixelSearch, Px, Py, 105, 484, 1174, 494, 0x97FF34, 3, Fast ;0x34FF97
if ErrorLevel 
Sleep, 300
{
ToolTip, Найдено 
MsgBox, Найдено в at X%Px% Y%Py%. ;Но здесь координаты не пишутся в сообщении. они похоже равны 0 несмотря на то, что PixelSearch что-то там находит.
;MouseMove, Px, Py,
;Click Px, Py, 0
MouseMove, Px, Py, 0,
ToolTip, Перемещаю в найденное
sleep 600
MouseMove, 0, 5, 50, R
ToolTip, Смещаю
sleep 500
ToolTip, тыкаю
Click
}</code></pre></div></div></div><p>Тут какие-то моды для координат курсора и мыши, в которых совсем непросто разобраться, и несколько видов и непонятно какой из них конкретно для этой задачи предназначен<br /></p><div class="codebox"><pre><code>CoordMode,Mouse,Screen
CoordMode,Pixel,Screen</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (yellow)]]></author>
			<pubDate>Fri, 20 May 2022 12:05:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153291#p153291</guid>
		</item>
	</channel>
</rss>
