Есть ли Win32 API для получения скриншотов? - PullRequest
6 голосов
/ 09 апреля 2010

Я пишу приложение, которое должно делать снимки экрана автоматически (так же, как нажатие кнопки PrintScreen). Поэтому, пожалуйста, предложите мне, как это сделать. Будет достаточно необработанного 24-битного изображения BMP.

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: мое приложение написано на C, поэтому я ищу любые API-интерфейсы win32, которые можно вызвать из моего кода.

(Иногда назад я получил пример кода из codeproject, который использовался для получения снимков экрана, но пользователь указателя мыши мигал, когда сделан снимок экрана. При выполнении нескольких снимков это выглядит раздражающим для пользователя, поэтому не хочу, чтобы указатель мыши мигал!)

Ответы [ 2 ]

12 голосов
/ 09 апреля 2010

GetDC(NULL) + BitBlt()

Чтобы захватить полупрозрачные / альфа / многослойные окна, вы должны передать флаг CAPTUREBLT на BitBlt, если вы это сделаете, курсор мигнет, прочитайте эту статью , чтобы узнать почему.

В NT6 + вы можете использовать API увеличения , чтобы делать то, что вы хотите.

7 голосов
/ 09 апреля 2010
...