А вот не проще использовать функцию WindowFromPoint? т.е. получить идентификатор окна приложения-игры, и потом статическими координатами обращаться непосредственно к нему, а не отсчитывать координаты положения окна?
ну вроде вот ошибка
Код:
function FindPixel(FindColor, X, Y, StopX, StopY: Integer): CursorXY;
var
X1 : Integer;
Flag : Boolean;
begin
Result.Res:= False;
Flag := False;
while Y <= StopY-1 do
begin
for X1:= X to StopX-1 do
begin
SetCursorPos(X1, Y);
if Form1.Image1.Picture.Bitmap.Canvas.Pixels[X1, Y] = FindColor then
begin
Result.X := X1; {возвращаем координаты найденного пикселя}
Result.Y := Y;
Result.Res := True; {а также информацию о том что пиксель найден}
Flag := True; {мы нашли наш пиксель}
Break; {значит выходим из цикла}
end;
end;
x:=0; ///--- !!!!
if Flag then {если завершили внутренний цикл - завершаем и внешний}
Break;
Inc(Y);
end;
end;
После поиска массива, и не обнаружения пикселя, в функцию поиска идут координаты X не с 0, а от туда где закончился поиск массива цветов,... бла-бла-бла. Вообщем после окончания продолжения поиска по X, надо сказать что следующая строчка пошла с 0.