2009-04-03 11 views
5

Quiero agregar la capacidad de que los usuarios capturen la pantalla actual en mi aplicación y la envíen por correo electrónico. Tengo una base de usuarios no muy técnica, así que necesito que esto sea lo más simple posible. Planeo dejarles que hagan clic en un elemento de menú llamado Help Me! que luego capturará la pantalla de la aplicación actual, con suerte como un jpg o png, y luego abrir Outlook y agregar la imagen como un archivo adjunto.¿Cómo capturo la pantalla actual como una imagen?

Estaba leyendo este post ScreenCapture en Code Project, pero es un poco viejo y no es exactamente lo que estaba buscando, así que pensé que podría verificar si hay una mejor manera de hacerlo.

¿Cómo empiezo con esto? ¿Hay una biblioteca o las capacidades incorporadas son suficientes?

Gracias!

Respuesta

12

Esa publicación que vinculó es el enfoque correcto, simplemente lo hizo muy complejo. Desearía usar Graphics.CopyFromScreen.

Rectangle bounds = this.Bounds; 

using(Bitmap ss = new Bitmap(bounds.Width, bounds.Height)) 
using(Graphics g = Graphics.FromImage(ss)) 
{ 
    g.CopyFromScreen(this.Location, Point.Empty, bounds.Size); 
    ss.Save("test.jpg", ImageFormat.Jpeg); 
} 
+0

pequeña errata -> Línea 4 -> Graphics.FromImage (ss)) Brillante! –

+0

@Mr_Mom: Gracias, corregido. – Samuel

Cuestiones relacionadas