Ich habe in der Codelibrary folgenden Code, zum erzäugen
einens Screenshots gefunden:
Code:
const
cTileSize = 50;
function TForm1.GetScreenShot: TBitmap;
var
Locked: Boolean;
X, Y, XS, YS: Integer;
Canvas: TCanvas;
R: TRect;
begin
Result := TBitmap.Create;
Result.Width := Screen.Width;
Result.Height := Screen.Height;
Canvas := TCanvas.Create;
Canvas.Handle := GetDC(0);
Locked := Canvas.TryLock;
try
XS := Pred(Screen.Width div cTileSize);
if Screen.Width mod cTileSize > 0 then
Inc(XS);
YS := Pred(Screen.Height div cTileSize);
if Screen.Height mod cTileSize > 0 then
Inc(YS);
for X := 0 to XS do
for Y := 0 to YS do
begin
R := Rect(
X * cTileSize, Y * cTileSize, Succ(X) * cTileSize,
Succ(Y) * cTileSize
);
Result.Canvas.CopyRect(R, Canvas, R);
end;
finally
if Locked then
Canvas.Unlock;
ReleaseDC(0, Canvas.Handle);
Canvas.Free;
end;
end;
Nun möchte ich aber kein Bitmap vom Gesammten Bildschirm, sondern nur
eines bestimmten Bereiches. Also von Position x1/y1 bis x2/y2. Ich habe
schon ein wenig am Code rumgewurschtelt, aber bis jetzt ist nix wirklich brauchbares
rausgekommen. Kann mir vielleicht jemand einen Tip geben, was ich am Code verändern muss, damitt es
funktioniert?!