Ich habe Code, der einen bestimmten Bereich empfängt, der bereits zuvor auf der Serverseite definiert wurde, und erstellt ein Loch in Form auf der Clientseite. Stattdessen möchte ich eine Bildschirmaufnahme von diesem Bereich erhalten, aber ohne erscheint meine Form im Endergebnis, wie eine normale Desktop-Aufnahme, aber in diesem Fall wird nur dieser kleine Bereich erfasst.Wie erstellt man einen Screenshot eines bestimmten Bereichs?
Also, wie kann ich dies meinen Code unten dafür anpassen?
procedure TForm1.CS1Read(Sender: TObject; Socket: TCustomWinSocket);
var
X1, X2, Y1, Y2: Integer;
List: TStrings;
FormRegion, HoleRegion: HRGN;
StrCommand: String;
begin
StrCommand := Socket.ReceiveText;
if Pos('§', StrCommand) > 0 then
begin
List := TStringList.Create;
try
FormRegion := CreateRectRgn(0, 0, Form12.Width, Form12.Height);
ExtractStrings(['§'], [], PChar(StrCommand), List);
X1 := StrToIntDef(List[0], 0) - Form12.Left - 2;
Y1 := StrToIntDef(List[1], 0) - Form12.Top - 2;
X2 := StrToIntDef(List[2], 0) - Form12.Left - 2;
Y2 := StrToIntDef(List[3], 0) - Form12.Top - 2;
HoleRegion := CreateRectRgn(X1, Y1, X2, Y2);
CombineRgn(FormRegion, FormRegion, HoleRegion, RGN_DIFF);
SetWindowRgn(Form12.Handle, FormRegion, True);
finally
List.Free;
end;
end;
end;
vielen dank freund. –