Какой самый эффективный способ захвата экрана?Захват экрана с помощью DirectX? - PullRequest
2 голосов
/ 03 мая 2011

Я знал о захвате экрана, используя контексты устройств и GDI, начиная с Windows XP.Есть ли лучший способ (например, DirectX?) Теперь, когда рабочий стол в основном Direct3D.

Как сделать снимок экрана с помощью DirectX?

Я хочу узнать наиболее эффективный способ перехода в пользовательский режим.скриншот.Для программы технической поддержки, которая нуждается в частых снимках экрана.

ОБНОВЛЕНИЕ : я не хочу прибегать к использованию драйверов режима ядра.

Ответы [ 3 ]

0 голосов
/ 28 июня 2011

На основании ответа vcsjones (выше).См. CodeProject http://www.codeproject.com/KB/dialog/screencap.aspx#And%20The%20DirectX%20way%20of%20doing%20it%20

0 голосов
/ 27 февраля 2013

Альтернативный метод - использование приложения Spazzarama , которое использует DirectX (на основе SlimDx) и Easyhook для внедрения вашей библиотеки захвата в конвейер DirextX работающего приложения.

0 голосов
/ 03 мая 2011

Я не уверен, что это на самом деле будет быстрее, чем алгоритмы, которые вы имеете в виду, но один из способов сделать это - скопировать буфер с помощью GetRenderTargetData.

GetRenderTargetData

...