Скриншот делается так.
procedure TForm1.Button1Click(Sender: TObject);
var
bmp:TBitmap;
begin
bmp := TBitmap.Create;
try
bmp.PixelFormat := pf32bit; // сейчас не нужно, но, вероятно, потребуется при обработке
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
BitBlt(bmp.Canvas.Handle, 0,0, Screen.Width, Screen.Height,
GetDC(0), 0,0,SRCCOPY);
imgScreen.Picture.Assign(bmp); // теста ради выведем на Image; в боевой проге не нужно
finally
bmp.Free;
end;
end;
А уж получив скриншот в TBitmap, делай с ним что хочешь. Козявь цвета, обрабатывай как-нибудь… Как — это уже другой вопрос.