Capture la captura de pantalla usando .NET

Posible duplicado:
¿Cómo puedo capturar la pantalla en un bitmap?

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

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

¿Puedes 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 progtwig.

Sin duda, es posible tomar una captura de pantalla con .NET Framework. La forma más sencilla es crear un nuevo objeto Bitmap y dibujarlo utilizando el método Graphics.CopyFromScreen .

Código de muestra:

 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 en capas. La respuesta de Hans Passant aquí explica el método más complicado que se requiere para obtener esos en sus capturas de pantalla.