Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Desktop Video Capturing |
Автор: metrosci 12.8.2007, 03:34 |
Здравствуйте! Пытаюсь создать некоторый аналог RAdmin, но никак не могу найти способ быстрого захвата текущей картинки рабочего стола. Все известные мне методы требуют слишком много времени на один кадр. На данный момент мне известны 3 способа захвата картинки с рабочего стола: 1) Классика: GetDC(0); CreateCompatibleBitmap(); BitBlt(). Не годится, т.к. нужно минимум 100ms на захват одного кадра. 2) DirectX: g_pd3dDevice->GetFrontBufferData(); не годится по той же причине... (MSDN: very slow by design...) 3) слегка извращенный метод, но быстрый, хотя и глючный: ставится Hmelov Screen Capture Driver, который эмулирует веб-камеру, в видеопотоке которой и идут кадры рабочего стола. Достаточно подключиться к этому потоку и хватать кадры. Работает невероятно быстро, но грузит проц на 50-100%, т.к. требует окна для Preview, т.е. постоянно идет ненужный рендеринг, на некоторых компах очень криво работает, и не переваривает 16-битный цвет. При этом существует много программ, которые быстро и безглючно берут кадры со стола: vuCamera, RAdmin,...,...,... как? Буду очень признателен за любую помощь, идею, совет. Всем спасибо! |
Автор: jonie 12.8.2007, 13:00 |
сорцы VNC поглядеть, и опять же не изобретайте велосипед в плане протокола, используйте vnc-шный ) ? вот аналог, гугл найдет собсна на чем основано... http://www.tightvnc.com/ |
Автор: metrosci 12.8.2007, 21:46 |
jonie, Спасибо! Попробую порыть его исходники. |
Автор: malor 8.6.2011, 08:36 |
Если кто занимался написанием remote-desktop программы, то поделитесь pls исходниками, тоже охота покопаться в этом. |