Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Screenshot des eigenen Anwendungsfensters erstellen

  Alt 2. Feb 2006, 19:54
mOzZzI hat hier einen Code veröffentlicht, der einen Screenshot der eigenen Anwendung erstellt und speichert. Ich habe den Code leicht modifiziert:

Delphi-Quellcode:
procedure SaveAppScreen(const SaveBmpFileName: string);
var
  Bitmap: TBitmap;
  Canvas: TCanvas;
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetWindowDC(0);
    try
      Bitmap := TBitmap.Create;
      try
        Bitmap.Width := Application.MainForm.Width;
        Bitmap.Height:= Application.MainForm.Height;
        Bitmap.PixelFormat := pfDevice;
        BitBlt(Bitmap.Canvas.Handle, 0, 0, Pred(Application.MainForm.Width), Pred(
               Application.MainForm.Height), Canvas.Handle,
               Application.MainForm.Left, Application.MainForm.Top,
               Bitmap.Canvas.CopyMode);
        Bitmap.SaveToFile(SaveBmpFileName);
      finally
        FreeAndNil(Bitmap);
      end;
    finally
      ReleaseDC(0, Canvas.Handle);
    end;
  finally
    FreeAndNil(Canvas);
  end;
end;
Möglicher Aufruf:

SaveAppScreen('D:\Screenie.bmp'); Der Screenshot ist allerdings relativ groß, wie man es von Bitmaps gewohnt ist. Mit dieser Prozedur lässt sich ein Bitmap in eine JPEG-Datei konvertieren, um die Dateigröße - und bedingt die Qualität - zu reduzieren.
  Mit Zitat antworten Zitat