Vielen Dank für deine Rückmeldung.
Die Su-Fu kenn ich und habe ich benutzt...
Natürlich auch viel zu dem Thema gefunden, aber eben das meiste für
VCL wie z.B.
Delphi-Quellcode:
Function myBMPWindowSnap(var bmp: TBitmap; windowHandle: HWND): boolean;
var rc : TRect;
huser32 : THandle;
F : function(Hnd: HWND; HdcBlt: HDC; nFlags: UINT): BOOL; stdcall;
begin
Result := False;
huser32 := GetModuleHandle(user32);
if huser32 <> 0 then begin
@F := GetProcAddress(huser32, 'PrintWindow');
if @F <> nil then begin
GetWindowRect(windowHandle, rc);
bmp.Width := rc.Right - rc.Left;
bmp.Height := rc.Bottom - rc.Top;
bmp.Canvas.Lock;
try
Result := F(windowHandle, bmp.Canvas.Handle, 0);
finally
bmp.Canvas.Unlock;
if Result and ((bmp.Width = 0) or (bmp.Height = 0))
then Result := False;
end;
end;
end;
end;
Doch leider gibts in FireMonkey sachen wie z.B. das
Handle von BMP nicht...
Und wenn ich was für FireMonkey gefunden habe, dann nur für sichtbare Fenster
-Edit-
Dazu kommt, dass wenn man z.B. nur die Canvas der 2. Form erwischt, das eingeschnappte Fenster (notepad) nicht dargestellt wird, da es ja nicht wirklich auf der Canvas existiert. D.H. man müsste über das Fenster selbst (notepad) den Screenshot abgreifen. In
VCL gäbe es da ein paar Sachen aber in FireMonkey bin ich da nicht so bewandert...
Falls jemand ein bereits vorhandenes Thema zu so etwas hätte das ich nicht gefunden habe, wärs super wenn einer das verlinken könnte