Registriert seit: 1. Feb 2018
3.691 Beiträge
Delphi 11 Alexandria
|
AW: Screenshot von Fenster hat falschen Titel ( mit Beispielcode )
12. Okt 2022, 21:42
So funktionierts bei mir immer, es muss noch ein wenig Hand angelegt werden den Border richtig zu berechnen.
Delphi-Quellcode:
procedure ScreenShot(const ActiveWindow: Boolean; var DestBitmap: TBitmap);
var
w, h: Integer;
hWin: Cardinal;
r: TRect;
oDC: HDC;
oCanvas: TCanvas;
oBitmap: TBitmap;
begin
if activeWindow then
hWin := GetForegroundWindow
else
hWin := GetDesktopWindow;
try
GetWindowRect(hWin, r);
w := r.Right - r.Left;
h := r.Bottom - r.Top;
oCanvas := TCanvas.Create;
try
oDC := GetDC(0);
try
oBitmap := TBitmap.Create;
try
oBitmap.PixelFormat := TPixelFormat.pfDevice;
oBitmap.Width := w;
oBitmap.Height := h;
oCanvas.Handle := oDC;
oBitmap.Canvas.CopyMode := cmSrcCopy;
oBitmap.Canvas.CopyRect(
Rect(0, 0, oBitmap.Width, oBitmap.Height),
oCanvas,
Rect(r.Left, r.Top, r.Right, r.Bottom));
finally
DestBitmap.Assign(oBitmap);
oBitmap.Free;
end;
finally
ReleaseDC(0, oDC);
end;
finally
oCanvas.Free;
end;
finally
end;
end;
Geändert von KodeZwerg (12. Okt 2022 um 23:20 Uhr)
Grund: fixed
|
|
Zitat
|