Я хочу получить снимок экрана наиболее эффективным образом. Это будет использоваться в программе, которая работает в фоновом режиме, когда запущены другие интенсивные программы (игры), и я не хочу влиять на их производительность (слишком много). Снимок экрана будет иметь несколько (10+) раз в секунду, поэтому я хочу, чтобы он был как можно быстрее.Эффективный захват всего экрана
Идеально я ищу код Delphi, но я открыт для всего, что будет лучше для этого. Я нашел первую функцию this, которая хорошо работает, может ли кто-нибудь подтвердить/развенчать, что это самый быстрый способ сделать это?
Кроме того, некоторые приложения захватывают весь экран (например, skyrim), и я думаю, что они обходят систему Window, используемую в приведенном выше. Вышеупомянутая ссылка не может получить эти изображения. Кто-нибудь есть идея, как их схватить?
Попробуйте захватить экраны с помощью DIB http://msdn.microsoft.com/en-us/library/windows/desktop/dd183562%28v=vs.85%29.aspx. – Alexandr
Взгляните на [Самый быстрый способ захвата экрана] (http://stackoverflow.com/q/5069104/859646). Также я предполагаю, что подходы GDI не будут захватывать наложения DirectX. – JRL
Игры и видео DirectX появятся как черный прямоугольник. Сделайте проверку работоспособности, нажав клавишу PrintScr и вставив ее в редактор растровых изображений, при запуске различных целевых приложений (игр, видео и т. Д.). Если вы получите черные прямоугольники, на которых должен отображаться дисплей, это проблема DirectX. –