2011-02-19 18 views
36

Duplicar posible:
How May I Capture the Screen in a Bitmap?capturar la captura de pantalla utilizando .NET

Necesito hacer una aplicación que captura una instantánea de la pantalla actual cada vez que se pulsó un botón en particular.

He buscado mucho, pero solo he encontrado cómo capturar la ventana actual.

¿Puede ayudarme a averiguar cómo hacer esto en .NET?

Podemos hacerlo manualmente presionando la pantalla de impresión y guardando la imagen usando la pintura. Necesito hacer lo mismo, pero quiero hacerlo con un programa.

+0

@searock - no está duplicado, lo he visto ... pero era como una ventana semitransparente y necesito una captura de pantalla para toda la pantalla, incluida la barra de tareas ... Por favor, vuelva a verificar –

+0

@Bhavik Goyal Está malinterpretando el título, significa tomar una captura de pantalla de un escritorio e incluso mostrar una ventana si es semi transparente. Sin ofensa:) – Searock

+0

pero significa que si mi ventana está en la parte superior y está rodeando todo el escritorio. Pero necesito recuperarme incluso si mi ventana está minimizada o incluso si mi ventana se ha ocultado. –

Respuesta

48

Es ciertamente posible capturar una captura de pantalla con .NET Framework. La forma más simple es crear un nuevo objeto Bitmap y dibujarlo usando el Graphics.CopyFromScreen method.

Código de ejemplo:

using (Bitmap bmpScreenCapture = new Bitmap(Screen.PrimaryScreen.Bounds.Width, 
              Screen.PrimaryScreen.Bounds.Height)) 
using (Graphics g = Graphics.FromImage(bmpScreenCapture)) 
{ 
    g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, 
        Screen.PrimaryScreen.Bounds.Y, 
        0, 0, 
        bmpScreenCapture.Size, 
        CopyPixelOperation.SourceCopy); 
} 

Advertencia: Este método no funciona correctamente para ventanas superpuestas. La respuesta de Hans Passant here explica el método más complicado requerido para obtener esos en sus capturas de pantalla.

+3

Funciona correctamente para ventanas en capas en Windows 7+, creo . (Que rompió muchos hacks. Suspiro.) – Ryan

+0

si cambia la configuración de visualización ** Cambia el tamaño de todos los elementos ** a ** más grande **, el código solo puede capturar parte de la pantalla. ¿Cómo resolver? –

Cuestiones relacionadas