Thema: Delphi Form screenshot

Einzelnen Beitrag anzeigen

taktaky
(Gast)

n/a Beiträge
 
#1

Form screenshot

  Alt 18. Mai 2008, 21:36
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);
  Mit Zitat antworten Zitat