[INTERFACE]
DIALOG, "Проверка группы пикселей на совпадение", 961, 257;
STATIC, "Поиск в", 4, 4, 44, 20;
COMBO, "Активный по Экрану""Активный по Указателю""Фоновый по Указателю""Активный по Скриншоту""Фоновый по Скриншоту", 52, 4, 160, 180, int EW;
STATIC, "Указатель на окно", 220, 4, 100, 20;
EDIT, 324, 4, 140, 20, win W;
STATIC, "Указатель на скрин", 488, 4, 104, 20;
EDIT, 596, 4, 76, 20, int Screen;
STATIC, "Пауза до:", 4, 28, 52, 20;
EDIT, 60, 28, 100, 20, int P1;
STATIC, "Время ожидания", 4, 52, 92, 20;
EDIT, 100, 52, 100, 20, int T;
STATIC, "Группа пикселей которые должны совпасть", 4, 76, 236, 20;
EDIT, 256, 76, 692, 20, string PYes;
STATIC, "Группа пикселей которые НЕ должны совпасть", 4, 100, 248, 20;
EDIT, 256, 100, 692, 20, string PNo;
STATIC, "Разбежность оттенков", 4, 124, 120, 20;
EDIT, 128, 124, 100, 20, int R;
STATIC, "Пауза после (если группа пикселя совпала)", 4, 148, 228, 20;
EDIT, 236, 148, 100, 20, int P2;
STATIC, "Комментарий", 4, 172, 76, 20;
EDIT, 84, 172, 864, 20, unknown Comment;
BUTTON_OK, "Принять", 736, 200, 100, 20;
BUTTON_CANCEL, "Закрыть", 848, 200, 100, 20;
[END]

[APPEARANCE]
COLOR = 125, 105, 150;
SIZE_X = 10;
SIZE_Y =6;
[END]

[INFO]
[ENDL]>>PYes>>[ENDL]>>PNo>>[ENDL]>>Comment
[END]

[ASSOC_VAR]
EW=0;
W=W_Kib;
Screen=Screen;
P1=0;
T=0;PYes="100, 200, 5332989 & 105, 205, 7040243";PNo="200, 300, 366677888 & 205, 305, 289756886";
R=0;
P2=0;
W_V = #~W~;
V_X=~W~.leftclient;
V_Y=~W~.topclient;
V_Screen=#~Screen~;
Comment=;
[END]

[GLOBAL_VAR]
win ~W~;
int ~Screen~[3000][3000];  
[END]

[EVENT]
IF (I_MODE_BIND_WINDOW!=0)SENDBUTTON(GETID(EW), S_MODE_BIND_WINDOW);
IF (I_MODE_BIND_WINDOW!=0)SENDEDIT(GETID(W), W_Kib);
IF (I_MODE_BIND_WINDOW!=0)ENABLE(GETID(EW), 0);
IF (I_MODE_BIND_WINDOW!=0)ENABLE(GETID(W), 0);
IF (I_MODE_BIND_WINDOW!=0)ENABLE(GETID(Screen), 0);
IF (EW==0)ENABLE(GETID(W), 0);
IF (EW==0)ENABLE(GETID(Screen), 0);
IF (EW==1)ENABLE(GETID(W), 1);
IF (EW==1)ENABLE(GETID(Screen), 0);
IF (EW==2)ENABLE(GETID(W), 1);
IF (EW==2)ENABLE(GETID(Screen), 0);
IF (EW==3)ENABLE(GETID(W), 0);
IF (EW==3)ENABLE(GETID(Screen), 1);
IF (EW==4)ENABLE(GETID(W), 0);
IF (EW==4)ENABLE(GETID(Screen), 1);
[END]

[FUNCTION_BODY]
function(int ew, int #Scr, win #w, int v_x, int v_y, int p1, int t, string PYes, string PNo, int r, int p2)
{
pause (p1);
string Txycol[3];
PYes="&"+PYes+"&";
string P_Yes[99];
int X_Yes[99], Y_Yes[99], Col_Yes[99]; 
int K_Yes=0;
int sy=regexsearch(99, #P_Yes[0], PYes, "(?<=\&)(.+?)(?=\&)");
  if (sy>0)
  {
    for (int n=0; n<sy;  n++)
    {
    regexreplace(-1, #P_Yes[n], P_Yes[n], " ", "");
      if (P_Yes[n]!="")
      {
      P_Yes[n]=","+P_Yes[n]+",";
        if (regexsearch(3, #Txycol[0], P_Yes[n], "(?<=,)(.+?)(?=,)")==3)
        {
        X_Yes[K_Yes]=formatsn(Txycol[0]);
        Y_Yes[K_Yes]=formatsn(Txycol[1]);
        Col_Yes[K_Yes]=formatsn(Txycol[2]);
        K_Yes++;
        }
      }
    }
  }
PNo="&"+PNo+"&";
string P_No[99];
int X_No[99], Y_No[99], Col_No[99]; 
int K_No=0;
int sn=regexsearch(99, #P_No[0], PNo, "(?<=\&)(.+?)(?=\&)");
  if (sn>0)
  {
    for (n=0; n<sn;  n++)
    {
    regexreplace(-1, #P_No[n], P_No[n], " ", "");
      if (P_No[n]!="")
      {
      P_No[n]=","+P_No[n]+",";
        if (regexsearch(3, #Txycol[0], P_No[n], "(?<=,)(.+?)(?=,)")==3)
        {
        X_No[K_No]=formatsn(Txycol[0]);
        Y_No[K_No]=formatsn(Txycol[1]);
        Col_No[K_No]=formatsn(Txycol[2]);
        K_No++;
        }
      }
    }
  }
int ER;
if (t==0)goto d1r;
  looptime(t)
  {
  d1r:;
  ER=0;
    for (n=0; n<K_Yes;  n++)
    {
    if (ew==0) {if (scanpixel(X_Yes[n], Y_Yes[n], Col_Yes[n], r, r, r, r, r, r, -1)==0) ER=1;}
    if (ew==1) {if (scanpixel(v_x+X_Yes[n], v_y+Y_Yes[n], Col_Yes[n], r, r, r, r, r, r, -1)==0) ER=1;}
    if (ew==2) {if (scanpixel(X_Yes[n], Y_Yes[n], Col_Yes[n], r, r, r, r, r, r, w)==0) ER=1;}
    if (ew==3 || ew==4) {if (scanpixel(X_Yes[n], Y_Yes[n], Col_Yes[n], r, r, r, r, r, r, #Scr[0][0])==0) ER=1;}
    }
    for (n=0; n<K_No;  n++)
    {
    if (ew==0) {if (scanpixel(X_No[n], Y_No[n], Col_No[n], r, r, r, r, r, r, -1)==1) ER=1;}
    if (ew==1) {if (scanpixel(v_x+X_No[n], v_y+Y_No[n], Col_No[n], r, r, r, r, r, r, -1)==1) ER=1;}
    if (ew==2) {if (scanpixel(X_No[n], Y_No[n], Col_No[n], r, r, r, r, r, r, w)==1) ER=1;}
    if (ew==3 || ew==4) {if (scanpixel(X_No[n], Y_No[n], Col_No[n], r, r, r, r, r, r, #Scr[0][0])==1) ER=1;}
    }
  if (ER==0){pause (p2); return 1;}
  if (t==0) break;
  }
return 0;
}
[END]

[CALL]
(EW, V_Screen[0][0], W_V, V_X, V_Y, P1, T, PYes, PNo, R, P2)
[END]

[FUNCTION_LOGIC]  
==1
[END]