मेरे पास कोड है जो पहले से ही सर्वर पक्ष से पहले परिभाषित एक विशिष्ट क्षेत्र प्राप्त करता है और क्लाइंट पक्ष में फॉर्म पर एक छेद बनाता है। इसके बजाय, मैं इस क्षेत्र का स्क्रीन कैप्चर करना चाहता हूं लेकिन बिना किसी सामान्य डेस्कटॉप कैप्चर की तरह मेरा फॉर्म दिखाई देता है, लेकिन इस मामले में केवल इस छोटे क्षेत्र को ही पकड़ा जाएगा।किसी विशेष क्षेत्र का स्क्रीनशॉट कैसे बनाएं?
तो, मैं इसके लिए अपना कोड कैसे अनुकूलित कर सकता हूं?
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;
आपको बहुत अधिक धन्यवाद। –