Hallo
wie kann man Form1-Screenshot erzeugen?
mit dem Code wird den gesamten Bildschirm kopiert
Bilder für Support zwar wichtig aber der User will gerne nur das Programm-Screen capture. Mehr nicht. Was auf seinem Bildschirm ist, darf man nicht sehen
Delphi-Quellcode:
uses JPeg, Graphics, Windows, Classes ...;
var
B: TBitmap;
I: TJpegImage;
DC: hDC;
begin
B := TBitmap.Create;
try
DC := GetDC(hWnd_Desktop);
try
B.Width := Screen.Width;
B.Height := Screen.Height;
// Screenshot als Bitmap machen
BitBlt(B.Canvas.Handle, 0, 0, B.Width, B.Height,
DC, 0, 0, SRCCOPY);
finally
ReleaseDC(
DC, hWnd_Desktop);
end;
// Bitmap nach JPEG und speichern
I := TJpegImage.Create;
try
I.Assign(B);
I.SaveToFile('
Filename hier.jpeg');
finally
I.Free;
end;
finally
B.Free;
end;
end;
ich habe versucht mit :
B.Width := Form1.Width;
B.Height := Form2.Height;
Aber das Problem ist hier in Parameter :
BitBlt(B.Canvas.Handle, 0, 0, B.Width, B.Height, DC, 0, 0, SRCCOPY);
Ich habe versucht so :
BitBlt(Result.Canvas.Handle, Form1.Left, Form1.Top, Result.Width, Result.Height, Desktop, (Form1.left+Form1.width), Form1.Top+Form1.Height, SRCCOPY);