Я использую BitBlt
функцию winapi, чтобы сделать снимок экрана данного окна, даже если окно частично перекрыто.
У меня уже все работает нормально, за исключением того, что в Windows 10 для некоторых окон (например, браузера Edge) скриншот получается полностью черным.
Ряд других вопросов согласен с тем, что эта проблема связана с использованием графического контекста с аппаратным ускорением в этих окнах.
Очевидно, что библиотека GDI несовместима с графическим контекстом такого рода, поэтому необходимо использовать другую библиотеку.
Мой вопрос конкретно о , как определить, использует ли окно графический контекст, несовместимый с библиотекой GDI .
Если я смог обнаружить это, то я могу выбрать, какую библиотеку использовать для правильной записи снимка экрана (GDI, ActiveX или другие).
В противном случае, единственный способ обнаружить это - сканировать снимок экрана попиксельно, чтобы убедиться, что он полностью черный. Затем, используя другой метод захвата, пока я не получу контент на скриншоте.
Но это звучит как ужасное решение.