<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: как сделать в loop чтобы действие происходило 1 раз]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17366&amp;type=atom" />
	<updated>2022-09-11T16:13:02Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=17366</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как сделать в loop чтобы действие происходило 1 раз]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=154728#p154728" />
			<content type="html"><![CDATA[<p><strong>plastbit22</strong><br />Просто сделайте так, чтобы скрипт после прохода запоминал цвет пикселя и при повторном запуске проверял, изменился ли цвет пикселя или же нет.</p><p>Немного небрежный пример, но думаю вы поймёте о чем я.</p><div class="codebox"><pre><code>{
sc50::    ;  &quot;Numpad2&quot;
pixelcolor := &quot;0x7F4644&quot; ; Добавляем изначальное условие цвета
Loop
{
    WinActivate, ahk_pid %id1%
    Sleep, 333
    CoordMode, Pixel, Window
    PixelSearch, FoundX, FoundY, 31, 58, 31, 58, %pixecolor%, 0, Fast RGB ; указываем переменную за место цвета
    If (ErrorLevel = 0)
    {
if pixelcolor = 0x7F4644 ; Если нужный цвет то запустить снизу код
{
pixelcolor := &quot;0xff0000&quot; ; А теперь мы меняем условие на поиск другого пикселя, который знаем заранее, если не знаем, то немного нужно будет по другому написать, но принцип тот же.
        Send, {PgDn Down}
        Sleep, 200
        Send, {PgDn Up}
        Sleep, 1000
        WinActivate, ahk_pid %id2%
        Send, {F11}
        Sleep, 300
        WinActivate, ahk_pid %id1%
        Sleep, 333
        Send, {F1}
}
if pixelcolor = 0xff0000 ; красный. когда он его найдёт в условие выше, то снова заменит на наш старый цвет и будет его ждать
pixelcolor := &quot;0x7F4644&quot; ; меняем на старый
    }
    Send, {Home Down}
    sleep 193
    Send, {Home Up}
    Sleep, 1000
    If (ErrorLevel)
    {
        Send, {F2}
        Sleep, 400
    }
}
sc51::pause    ;  &quot;Numpad3&quot;
return
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Clannad5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39853</uri>
			</author>
			<updated>2022-09-11T16:13:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=154728#p154728</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: как сделать в loop чтобы действие происходило 1 раз]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=154707#p154707" />
			<content type="html"><![CDATA[<p>Здравствуйте, написал скрипт, который нажимает клавиши когда видит определённый пиксель, но пока он видит он постоянно без остановки спамет отрезок loop он начинается с Send, {PgDn Down}&nbsp; и заканчивается&nbsp; &nbsp;Sleep, 333&nbsp; Send, {F1}, как сделать чтобы это действие нажалось 1 раз и не повторялась больше пока не пропадёт пиксель. Сформулировал как смог, больно не серчайте на меня.</p><p> </p><div class="codebox"><pre><code>{
sc50::    ;  &quot;Numpad2&quot;
Loop
{
    WinActivate, ahk_pid %id1%
    Sleep, 333
    CoordMode, Pixel, Window
    PixelSearch, FoundX, FoundY, 31, 58, 31, 58, 0x7F4644, 0, Fast RGB
    If (ErrorLevel = 0)
    {
        Send, {PgDn Down}
        Sleep, 200
        Send, {PgDn Up}
        Sleep, 1000
        WinActivate, ahk_pid %id2%
        Send, {F11}
        Sleep, 300
        WinActivate, ahk_pid %id1%
        Sleep, 333
        Send, {F1}
    }
    Send, {Home Down}
    sleep 193
    Send, {Home Up}
    Sleep, 1000
    If (ErrorLevel)
    {
        Send, {F2}
        Sleep, 400
    }
}
sc51::pause    ;  &quot;Numpad3&quot;
return
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[plastbit22]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42771</uri>
			</author>
			<updated>2022-09-11T09:04:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=154707#p154707</id>
		</entry>
</feed>
