Программирование на Delphi и не только Как сделать ScreenShot вместе с изображением курсора? | Программирование на Delphi и не только

Delphi FAQ >> Графика

Эта функция на Delphi возвращает растровое изображение экрана (ScreenShot), вместе с изображением курсора. В этой функции на Delphi используются другие функции из нашего Delphi FAQ: ScreenCopy и GetCursorInfoWithIcon.

//делает копию экрана с курсором
function ScreenCopyWithCursor: TBitmap;
var   ABitmap: TBitmap;   MyCursor: TIcon;   CursorInfo: TCursorInfo;   IconInfo: TIconInfo;   pt: TPoint;

begin


  // получаем ScreenShot   ABitmap := TBitmap.Create;   ABitmap := ScreenCopy;

  // создаем иконку, в котрой будем хранить иконку курсора

  MyCursor := TIcon.Create;

  try


    // получаем данные о курсоре     CursorInfo := GetCursorInfoWithIcon;

    if CursorInfo.hCursor 0 then


    begin       GetCursorPos(pt);       MyCursor.Handle := CursorInfo.hCursor;

      // получаем параметры иконки

      GetIconInfo(CursorInfo.hCursor, IconInfo);

      // рисуем иконку курсора в нужном месте на Скриншоте

      ABitmap.Canvas.Draw(pt.X - IconInfo.xHotspot,                           pt.Y - IconInfo.yHotspot, MyCursor);

    end;


  finally
    // освобождаем память     MyCursor.ReleaseHandle;     MyCursor.Free;

  end;

  Result := ABitmap;

end;

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

Image1.Picture.Assign(ScreenCopyWithCursor);

Все девушки обожают цветы. И если вы хотите сделать своей любимой приятный сюрприз, то вам пригодится услуга доставка цветов, которую оказывают многие цветочные магазины.