Советы по Delphi

         

Как скопировать экран (или его часть) в TBitmap?


Nomadic советует:

Например, с помощью WinAPI так -

    var
bmp: TBitmap; DC: HDC;
begin

bmp:=TBitmap.Create;
bmp.Height:=Screen.Height;

bmp.Width:=Screen.Width;
DC:=GetDC(0);  //Дескpиптоp экpана
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0, 0, SRCCOPY);
bmp.SaveToFile('Screen.bmp');
ReleaseDC(0, DC); end;

Или с помощью обертки TCanvas -

Объект Screen[.width,height] - размеры

    Var
Desktop :TCanvas ; BitMap  :TBitMap;
begin
DesktopCanvas:=TCanvas.Create; DesktopCanvas.Handle:=GetDC(Hwnd_Desktop); BitMap := TBitMap.Create; BitMap.Width := Screen.Width; BitMap.Height:=Screen.Height; Bitmap.Canvas.CopyRect(Bitmap.Canvas.ClipRect, DesktopCanvas, DesktopCanvas.ClipRect); ........ end;

[001618]



Содержание раздела