Danke für die Antwort, ich habe das mal in die funktion eingebaut, die mit nicht versteckten fenstern bei mir super klappt:
Delphi-Quellcode:
function ScreenshotHidden(wnd: HWND; const bmp: TBitmap): Boolean;
var
PrintWindow: function(sHandle: HWND; dHandle: HDC; nFlags: UINT): BOOL; stdcall;
rec: TRect;
begin
Result := False;
if dllh <> 0 then
begin
@PrintWindow:= GetProcAddress(dllh , 'PrintWindow');
if @PrintWindow <> nil then
begin
SendMessage(wnd, WM_PRINT, 0, 0);
GetWindowRect(wnd, rec); //has to stay dynamic
bmp.Width := rec.Right - rec.Left;
bmp.Height := rec.Bottom - rec.Top;
result := PrintWindow(wnd, bmp.Canvas.Handle, 0);
end;
end;
end;
sieht nun so aus geht aber noch nicht, das TImage bleibt leer sofern das fenster versteckt ist.
PS: die
dll wird bei mir statisch im OnCreate event der form geladen.