Подтвердить что ты не робот

Каков наилучший способ сделать скриншоты окна с С++ в Windows?

Каков наилучший (самый простой) способ сделать снимок экрана работающего приложения с С++ под Windows?

4b9b3361

Ответ 1

Вы должны получить контекст окна устройства (GetWindowDC()) и скопировать изображение (BitBlt()). В зависимости от того, что еще вы знаете о приложении, вы будете использовать разные методы, чтобы найти, какой дескриптор окна перейти в GetWindowDC().

Ответ 2

В keybd_event в документации к функции указано, что вы можете использовать его, чтобы сделать снимок экрана и сохранить его в буфер обмена. Например:

keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_SILENT, 0);

В моей версии (с помощью справки Visual Studio 2005, установленной на моем компьютере) в ней указано, что вы можете сделать снимок экрана всего рабочего стола, установив второй параметр в 0 или снимок экрана только текущего приложения, установив его на 1.

Извлечение его из буфера обмена остается в качестве упражнения для читателя.

Однако я бы тщательно подумал, прежде чем делать это, так как он будет показывать любые данные изображения в буфере обмена.

Ответ 3

Вот пример code
Вы можете сделать CaptureAnImage(GetDesktopWindow());, чтобы сделать захват экрана.