2010-04-09 28 views
6

Estoy escribiendo una aplicación, que necesita tomar las capturas de pantalla automáticamente (al igual que presionar el botón Imprimir pantalla). Así que por favor sugiéreme cómo hacer esto. Una imagen en bruto BMP de 24 bits sería suficiente.¿Alguna API de Win32 para obtener capturas de pantalla?

OBSERVE POR FAVOR: Mi aplicación está en C, entonces cualquier API win32 que pueda ser llamada desde mi código es lo que estoy buscando.

(A veces volví a tener un código de ejemplo de codeproject que solía obtener las capturas de pantalla pero el usuario del puntero del mouse parpadea cuando se toma la captura de pantalla. Como se toman varias fotos, esto parece irritante para el usuario, no quieren que el puntero del ratón para abrir y cerrar)

+1

¿Qué encontró cuando buscó en Google la captura de pantalla de winapi? http://www.google.com/search?q=winapi+screenshot –

+1

Gracias, Debo haber sido un tonto al no intentar eso antes. Lo siento :) Esto realmente ayuda ==> http://groups.google.com/group/win32-programming/browse_thread/thread/55c030edbaeaf026 – Microkernel

Respuesta

11

GetDC(NULL) + BitBlt()

para capturar/alfa/ventanas en capas translúcidas, debe pasar la bandera a CAPTUREBLTBitBlt, si lo hace que, el cursor parpadea, lea this technet article para averiguar por qué.

En NT6 +, es posible que pueda utilizar el Magnification API para hacer lo que quiera.

+0

Hola, Gracias por eso. Ahora recuerdo, el único intento que hice que causaba que el puntero del mouse parpadeara fue GetDC() + BitBlt(). Ese es el problema principal :(No quiero que el puntero parpadee ... Cualquier forma de obtener las capturas de pantalla de forma inmejorable – Microkernel

+0

Simplemente no pase la bandera de CAPTUREBLT – Anders

Cuestiones relacionadas