To neni o ifoch, if-ov zvladne tvoj cpu asi tak miliardu za sekundu.
Ked mas popri tom spustenu hru na celu obrazovku tak je mozne ze to neustale prepina obrazovku medzi hrou a plochou, asi nemozes sahat na plochu ked bezi hra v overlay, apod. Nechapem o co sa snazis a preco to robis takto sialene (skenovat pixely plochy kvoli zisteniu vytazenia CPU je nezmysel. Najdi si googlom nejake WinAPI fcie na to co potrebujes a nescanuj pixely plochy)
P.S> mozes si to zredukovat na
//timer
procedure TForm1.Timer1Timer(Sender: TObject);
var
c:TCanvas;
n:integer;
begin
c:=TCanvas.create;
c.handle:=GetWindowDC(GetDesktopWindow);
if (ColorToHTMLHex(getpixel(c.handle, 613 , 442 )))='FF0000' then n:= 1 ;
c.free;
end;
a uvidis ci je problem v tom samotnom sahani na plochu. Moj tip je ako som uz pisal nesahaj na plochu ked bezi hra, praca s plochou tymito metodami je vo Win vseobecne velmi pomala. Pouzivaj WinAPI fcie ktore su priamo urcene na to co chces zistit (neviem co vlastne chces tym programom dosiahnut)