unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons,jpeg;type TForm2 = class(TForm) BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); private procedure ScreenCap(LeftPos, TopPos, RightPos, BottomPos: integer); { Private declarations } public { Public declarations } end;var Form2: TForm2;implementation{$R *.dfm}procedure TForm2.BitBtn1Click(Sender: TObject);begin ScreenCap(0,0,Screen.Width,Screen.Height);end;procedure TForm2.ScreenCap(LeftPos,TopPos,RightPos,BottomPos:integer);var RectWidth,RectHeight:integer; SourceDC,DestDC,Bhandle:integer; Bitmap:TBitmap; MyJpeg: TJpegImage; Stream:TMemoryStream;begin MyJpeg:= TJpegImage.Create; RectWidth:=RightPos-LeftPos; RectHeight:=BottomPos-TopPos; SourceDC:=CreateDC('DISPLAY','','',nil); DestDC:=CreateCompatibleDC(SourceDC); Bhandle:=CreateCompatibleBitmap(SourceDC, RectWidth,RectHeight); SelectObject(DestDC,Bhandle); BitBlt(DestDC,0,0,RectWidth,RectHeight,SourceDC, LeftPos,TopPos,SRCCOPY); Bitmap:=TBitmap.Create; Bitmap.Handle:=BHandle; Stream := TMemoryStream.Create; Bitmap.SaveToStream(Stream); Stream.Free; try MyJpeg.Assign(Bitmap); MyJpeg.CompressionQuality:=70; MyJpeg.Compress; MyJpeg.SaveToFile('C:\MyJPEGImage.JPG'); finally MyJpeg.Free; Bitmap.Free; DeleteDC(DestDC); ReleaseDC(Bhandle,SourceDC); end;end;end. |