Задача простая:
Что бы прога искала в конкретном месте конкретный цвет и после этого просто нажимала кнопку. Эта самая область, с нужным цветом постоянно движется, и вот когда она заходит в определенное место на экране - нужно нажимать.
вот что я натворил:
сначала пытался использовать один пиксель нужного цвета
CODE:
int Image_3[1][1];
loadimage (#Image_3[0][0], "C:\green.bmp");
int PosX_3[512];int PosY_3[512];
gr:
if (findimage(-1, #Image_3[0][0], 0, #PosX_3[0], #PosY_3[0],827, 768,864, 784, -1)==1);
{
sleep(10);
keydown('v');
sleep(3);
keyup('v');
};
goto gr;
int Image_3[1][1];
loadimage (#Image_3[0][0], "C:\green.bmp");
int PosX_3[512];int PosY_3[512];
gr:
if (findimage(-1, #Image_3[0][0], 0, #PosX_3[0], #PosY_3[0],827, 768,864, 784, -1)==1);
{
sleep(10);
keydown('v');
sleep(3);
keyup('v');
};
goto gr;
но скрипт работал не корректно. Например нажимал на кнопку один раз, а два пропускал.
вот пример с использованием findheapcolor
CODE:
int r=5;
int color[3];
color[0]=7339603; color[1]=3535914; color[2]=7012169;
int kol[3];
kol[0]=10; kol[1]=10; kol[2]=10;
gr:
sleep(10);
if (findheapcolor(5, #color[0], #kol[0], 3, 2, #x[0], #y[0], 5, 5, 10, 10,814, 757,870, 782, r, r, r, r, r, r, -1))==1)
{
keydown('v');
sleep(5);
keyup('v');
};
goto gr;
int r=5;
int color[3];
color[0]=7339603; color[1]=3535914; color[2]=7012169;
int kol[3];
kol[0]=10; kol[1]=10; kol[2]=10;
gr:
sleep(10);
if (findheapcolor(5, #color[0], #kol[0], 3, 2, #x[0], #y[0], 5, 5, 10, 10,814, 757,870, 782, r, r, r, r, r, r, -1))==1)
{
keydown('v');
sleep(5);
keyup('v');
};
goto gr;
Тут же наоборот - программа без остановки нажимала на кнопку, даже когда заданных цветов и близко не было на экране.
Так же пытался использовать функицю scanpixel, но мой не смог даже отличить белый от черного.
Прошу не сдерживаться и яростно критиковать мои попытки. Так же я был бы рад узнать какие я все таки совершил ошибки, и как их исправить. Если есть другие варианты решения моей задачи - предлогайте.
Добавлю что компьютер мощный и дело не в производительности