2016-10-18 5 views
3

Я хотел бы написать код, который способен захватить экран на этапе загрузки (когда Autochk запущен) и записать в файл. Каков наилучший подход?Как захватить экран на этапе загрузки (когда Autochk работает)?

Из того, что я знаю на этом этапе, доступен только файл ntdll.dll ... поэтому мы можем использовать этот собственный API, чтобы открыть Драйвер зеркала, чтобы получить данные экрана. Однако для получения данных из драйвера зеркала нам понадобится библиотека GDI, которая пока недоступна. Что мне делать?

+0

Не является ли экран в текстовом режиме в этой точке? –

+0

Я думаю, что он уже переключается в графический режим, но содержимое для печати - это просто текст – user3567728

+0

Это не проблема, связанная с C или C++. Не помещайте их как таковые, пожалуйста. –

ответ

0

Основная проблема заключается в том, что Windows использует код Windows в то время, а не ваш. Возможно, существуют исключения для (дисковых) драйверов, но поскольку вы говорите о вызове DLL Win32, это не имеет значения. Вы не можете вызвать GDI из драйвера. Кроме того, почему ваш драйвер должен быть вызван в первую очередь? Водители реагируют на запросы ОС для обработки определенных событий.

+1

мы можем зарегистрировать приложение, запущенное при загрузке до Autochk, это приложение перекроет другой процесс и выйдет из текущего. Таким образом, Autochk и другое приложение могут работать. Другой процесс будет периодически вызывать драйвер для получения данных экрана и сохранения на диске. – user3567728