Как отключить аппаратное ускорение другого приложения, которое использует CEF для рендеринга веб-страниц? - PullRequest
0 голосов
/ 13 мая 2018

Мне нужен скриншот html-части (например, class Chrome_RenderWidgetHostHWND ) приложения, которое использует CEF для визуализации веб-страниц.

Пробовал с использованием BitBlt и PrintWindow, но возможен только захват черного экрана, потому что приложение, которое я хочу захватить, использует аппаратное ускорение.

Это старая проблема, которая была решена в традиционном навигаторе Google Chrome, отключив опцию, которая гласит: использовать аппаратное ускорение при наличии , , изменяя некоторые настройки json-файла Google Chrome .

Тогда я хочу знать, существует ли какая-либо возможность сделать то же самое, в этом случае предотвратить или отключить этот ресурс для определенного приложения, использующего CEF?

Все, что я видел относительно этой возможности, было только отключить внутри приложения, использующего CEF, а не снаружи они .

Спасибо за любое относительное предложение или решение!

1 Ответ

0 голосов
/ 13 мая 2018

Если вы можете изменить исходный код этого приложения CEF, вы можете легко отключить аппаратное ускорение.

Если вы используете CEF4Delphi, вы должны установить для GlobalCEFApp.EnableGPU значение FALSE, а в случае DCEF3 вы можете добавить переключатель командной строки --disable-gpu внутри процедуры CefOnBeforeCommandLineProcessing.

Если вы можетеНе изменяйте исходный код, но вы можете изменить командную строку, а затем запустить это приложение с командной строкой --disable-gpu, например:

MyApp.exe --disable-gpu

Если все, что не удалось, вы всегда можете попробовать выполнитьэто приложение внутри виртуальной машины или ПК с включенной в черный список видеокартой.

...