Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.47 MB
Время: 0.056 c
2-1168673944
vegarulez
2007-01-13 10:39
2007.01.28
Каким методом можно вывести список комба бокса?


2-1168723096
DiX
2007-01-14 00:18
2007.01.28
Отправка почты


2-1168094564
Beavercrazy
2007-01-06 17:42
2007.01.28
Hint для DBgrid


4-1158393826
KilkennyCat
2006-09-16 12:03
2007.01.28
Признак сетевого или локального файла


2-1168436770
FIL-23
2007-01-10 16:46
2007.01.28
работа с константой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский