MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Использование Desktop Duplication API"
Answer 718000
Подробный ответ дан здесь
Суть в двух моментах:
Однократного вызова AcquireNextFrame недостаточно для получения изображения экрана, так как "Frame" - это необязательно изображение экрана, а совокупность некоторой информации о изменении состояния рабочего стола (среди которой, иногда, может быть и изображение экрана). Для получения изображения нужно циклически вызывать AcquireNextFrame и сохранять все полученные результаты.
Для корректного зацикливания нужно освободить Frame:
IDXGIOutputDuplication* DeskDupl; //инициализация... DeskDupl->AcquireNextFrame(5000, &FrameInfo, &DesktopResource); //работа с Frame... hr = DeskDupl->ReleaseFrame();//освобождаем Frame if (FAILED(hr)) { //произошла ошибка } else { //можно получить следующий Frame }
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.