Форум: "Начинающим";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
ВнизСнимок экрана с курсором мыши Найти похожие ветки
← →
swip (2007-01-11 08:52) [0]Как это сделать? И вот еще, почему снимок не берет шоты с видео проигрывателей? Они что, как то напрямую изображение передают.. забыл где то читал как это называется... Как с этим справиться?
← →
Barloggg (2007-01-11 09:26) [1]это называется оверлей.
это внеэкранная поверхность.
Чтобы можно было делать скриншоты с видеопроигрывателей нужно зайти в свойства этих видеопроигрывателей и снять галочку с пункта навроде такого "использовать наложение".
и все заработает.
← →
Barloggg (2007-01-11 09:28) [2]винда много чего делает оверлеем. помошник офиса сделан оверлеем.
насчет курсора мыши не знаю он отрисовывается аппаратно (настраивается в свойсвах мыши или в свойствах видеодрайвера кажется).
кстати а всплывающие подсказки рисуются нормально.
вообще оверлей великая штука была в те времена когда весь мир был палитровым. для того собственно и делался.
← →
Gydvin © (2007-01-11 09:39) [3]отследить координаты мыши и отрисовать
← →
Джо © (2007-01-11 09:41) [4]> Снимок экрана с курсором мыши
> Как это сделать?function MakeScreenshot (Bmp: TBitmap; ActiveWindowOnly: Boolean; CaptureCursor: Boolean = True): Boolean;
var
DC: HDC;
ACursor: HICON;
Pt: TPoint;
CurInfo: tagCURSORINFO;
IcoInfo: _ICONINFO;
Wnd: THandle;
ARect: TRect;
begin
Result := False;
if ActiveWindowOnly then
Wnd := GetForegroundWindow
else
Wnd := GetDesktopWindow;
if Wnd = 0 then Exit;
GetWindowRect(Wnd, ARect);
Bmp.Width := ARect.Right - ARect.Left;
Bmp.Height := ARect.Bottom - ARect.Top;
DC := GetWindowDC(Wnd);
try
BitBlt (
Bmp.Canvas.Handle,
0,0,Bmp.Width,Bmp.Height,
DC,
0,0,
SRCCOPY);
// -- курсор
if CaptureCursor then
begin
CurInfo.cbSize := SizeOf(CurInfo);
GetCursorInfo(CurInfo);
ACursor := CurInfo.hCursor;
Pt := CurInfo.ptScreenPos;
GetIconInfo (ACursor,IcoInfo);
DrawIcon(
Bmp.Canvas.Handle,
Pt.X - Integer(IcoInfo.xHotspot),
Pt.Y - Integer(IcoInfo.yHotspot),
ACursor
)
end;
finally
ReleaseDC(Wnd, DC);
end;
Result := True;
end;
--
var
Bmp: TBitmap;
...
Bmp := TBitmap.Create;
try
MakeScreenshot (Bmp, False, True);
Bmp.SaveToFile (...);
finally
Bmp.Free
end;
← →
novill © (2007-01-11 10:02) [5]> [4] Джо © (11.01.07 09:41)
А как оверлеи захватить?
← →
Джо © (2007-01-11 10:26) [6]> [5] novill © (11.01.07 10:02)
> > [4] Джо © (11.01.07 09:41)
>
> А как оверлеи захватить?
Не имею ни малейшего представления.
← →
09 (2007-01-11 10:33) [7]Спасибо!
← →
09 (2007-01-11 10:33) [8]НО оверлеи, это тема отдельная.......
← →
Amoeba © (2007-01-11 10:36) [9]
> А как оверлеи захватить?
IMHO, никак.
← →
novill © (2007-01-11 10:37) [10]А тут кто-то недавно хвастался что оверлеи захватить плёвое дело...
Можт объявится умелец.
← →
Barloggg (2007-01-11 10:53) [11]где-то я даже видел пример работы. в кладовке. здесь. рассматривался пример рисования на оверлее.
← →
Barloggg (2007-01-11 10:57) [12]вот вам статья с этого сайта:
Вывод графики на рабочий стол Windows с использованием оверлеев DirectX
http://www.delphimaster.ru/articles/directx/index.html
← →
Zeqfreed © (2007-01-11 11:17) [13]Кажется, Eraser говорил, что у него в программе захватывается изображение с оверлеев? Было бы интересно узнать хотя бы методику сего действа, на большее рассчитывать вряд ли придется :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.041 c