15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Программно нажимаем Print Screen.

Автор: Simon Carter

Совместимость: Delphi 3.x (или выше)

Приведённая здесь функция делает копию изображения экрана и сохраняет её в буфере обмена (Clipboard).  Так же необходимо включить в Ваш проект файл ClipBrd.pas.

procedure SendScreenImageToClipboard;
var
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  try
    bmp.Width := Screen.Width;
    bmp.Height := Screen.Height;
    BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
      GetDC(GetDesktopWindow), 0, 0, SRCCopy);
    Clipboard.Assign(bmp);
  finally
    bmp.Free;
  end;
end;


Следующая функция скопирует изображение экрана в в bitmap.  Переменная bitmap *должна* быть инициализирована до вызова этой функции.

procedure GetScreenImage(bmp: TBitmap);
begin
  bmp.Width := Screen.Width;
  bmp.Height := Screen.Height;
  BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
    GetDC(GetDesktopWindow), 0, 0, SRCCopy);
end;