2010-04-09 3 views
6

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

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

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

+1

Что вы нашли, когда искали Google для снимка winapi? http://www.google.com/search?q=winapi+screenshot –

+1

Спасибо, Я, должно быть, был глуп, чтобы не попробовать этого раньше. Извините :) Это действительно помогает ==> http://groups.google.com/group/win32-programming/browse_thread/thread/55c030edbaeaf026 – Microkernel

ответ

11

GetDC(NULL) + BitBlt()

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

На NT6 + вы можете использовать Magnification API, чтобы делать то, что вы хотите.

+0

Привет, Спасибо за это. Теперь я помню, что одна попытка, которую я делал, которая вызывала указатель мыши, была мгновенной: GetDC() + BitBlt(). Thats главная проблема :(Я не хочу, чтобы указатель мигал ... Любые способы получить снимки экрана без видимых проблем ??? – Microkernel

+0

Только не пропускайте флаг CAPTUREBLT – Anders

Смежные вопросы