Программирование на Delphi и не только Как сделать копию экрана (ScreenShot)? | Программирование на Delphi и не только

Delphi FAQ >> Графика

Эта функция на Дельфи возвращает растровое изображение экрана (ScreenShot):

//делает копию экрана
function ScreenCopy: TBitmap;
var   DC: HDC;   ABitmap: TBitmap;

begin


  // дескриптор дисплейного контекста устройства для Рабочего стола   DC := GetDC(GetDesktopWindow);

  //создаем объект класса TBitmap

  ABitmap := TBitmap.Create;

  // устанавливаем ширину и высоту картинки равной ширине экрана

  ABitmap.Width  := GetDeviceCaps(DC, HORZRES);   ABitmap.Height := GetDeviceCaps(DC, VERTRES);

  // копируем в картинку изображение экрана

  BitBlt(ABitmap.Canvas.Handle, 0, 0, ABitmap.Width, ABitmap.Height, DC, 0, 0, SRCCOPY);   Result := ABitmap;

end;

Пример использования: …

Image1.Picture.Assign(ScreenCopy);

Когда переезжал в новую квартиру, коробка, в которой были Sony PSP и Ipod Touch упала на асфальт. Для приставки пришлось искать ремонт psp в Москве, а для ипода, к счастью, все обошлось без последствий.