1

Тема: AHK: Сброс функции при новом цвете пикселя

Доброго времени суток!

Имею данный код:

Loop{
PixelGetColor, color, 840, 525, alt
if (color = 0x4F4FC1)
Click Down
if (color != 0x4F4FC1)
Click Up
}

Теперь к проблеме: идёт непрерывный поиск определенного пикселя и, как только он находится, необходимо зажать ЛКМ, а как только он меняется на другой цвет, то необходимо 1 раз нажать ЛКМ (чтобы отжалась) и снова ждать необходимый (пока идет ожидание цвета ничего не делать). Тут и начинается проблема, так как исходя из кода, если цвет не соотвутствует необходимому, то начинается круговое "отжимание" ЛКМ, что мешает работе ЛКМ. Сижу долго ломаю голову и не могу никак подобрать.
Заранее благодарен за Вашу помощь!

2 (изменено: __Михаил__, 2020-09-18 01:49:34)

Re: AHK: Сброс функции при новом цвете пикселя

efremov30ev

Вроде как-то так.

CoordMode, Mouse, Screen	; Относительно всего экрана 
;CoordMode, Mouse, Relative	; Стандартно, относительно текущего окна


F3::
Cl = 0		; Флаг зажатия ЛКМ.
Col = 0x4F4FC1	; Искомый цвет
TI := 0		; Отладка срабатываний.

Loop
{
 Sleep, 100
 PixelGetColor, Color, 840, 525, alt
 If (Color = Col)
 {
  If Cl = 0
  {
   TI++			; Для подсчёта, сколько раз сработал скрипт.
   ToolTip, Кнопка зажата`nТекущий цвет: %Color%`nНужный: %Col%`n%TI%		;, 840, 525
   Send, {vk1 Down}	; Зажатие ЛКМ.
   Cl = 1		; Флаг, что кнопка зажата.
   Continue		; Начать следую итерацию цикла.
  }
 }
 Else If (Color != Col) And (Cl = 1)
 {
   ToolTip, Кнопка отпущена`nТекущий цвет: %Color%`nНужный: %Col%`n%TI%		;, 840, 525
  Send, {vk1 Up}	; Отпуск ЛКМ.
  Cl = 0		; Флаг, что кнопка отпущена.
 }
 Else
  ToolTip, % Color		;, 840, 525
}
Return

F6:: Pause
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101