Mega Code Archive

 
Categories / Delphi / Examples
 

Screen capture into a bmp file

You need to make a screenshot from your application? This little routine grabs the whole screen, assigns it temporary to a bitmap and stores it into file "sample.bmp". A potential problem: If your system is set up to HiColor (32k colors = 15 bits per pixel), some programs will not be able to read the result since they are only capable to read 16 bits/ pixel. procedure TForm1.Button1Click(Sender: TObject); var DeskTopDC: HDc; DeskTopCanvas: TCanvas; DeskTopRect: TRect; Bitmap: TBitmap; begin DeskTopDC := GetWindowDC(GetDeskTopWindow); DeskTopCanvas := TCanvas.Create; DeskTopCanvas.Handle := DeskTopDC; DeskTopRect := Rect(0,0,Screen.Width,Screen.Height); Bitmap := TBitmap.Create; with Bitmap do begin Width := Screen.Width; Height:= Screen.Height; PixelFormat := pfDevice; end; Bitmap.Canvas.CopyRect(DeskTopRect,DeskTopCanvas,DeskTopRect); Bitmap.SaveToFile ('c:\temp\sample.bmp'); Bitmap.Free; DesktopCanvas.Free; ReleaseDC(GetDeskTopWindow,DeskTopDC); end;