Copiar Pantalla Completa con C#
Que tal amigos!
Hace unos días me entró la duda de como copiar la pantalla desde una aplicación C# y esta es la manera mas sencilla de hacerla. Realice una pequeña aplicación para probar que funcionara bien y luce mas o menos asi:
Más adelante publicaré como capturar solamente un área seleccionada y como capturar únicamente la ventana activa. Si deseas realizar el ejemplo, al final de esta publicación encontrarás la liga para descargarlo.
Éste es el código necesario para copiar la pantalla completa:
try
{
//Estas líneas son necesarias para ocultar totalmente el windows form de la captura de pantalla.
this.Hide();
System.Threading.Thread.Sleep(250);
//Obtenemos la resolución de pantalla
Rectangle escritorio = Screen.GetBounds(this.ClientRectangle);
//Creamos un Bitmap del tamaño de nuestra pantalla
using (Bitmap b = new Bitmap(escritorio.Width, escritorio.Height))
{
//Creamos el gráifco en base al Bitmap
using (Graphics g = Graphics.FromImage(b))
{
//Transferimos la captura al objeto g en base a las mediad del bitmap
g.CopyFromScreen(0, 0, 0, 0, b.Size);
//Almacenamos la captura
b.Save(@"C:\CapturaPantallaI.png", ImageFormat.Png);
//Lo mostramos en el WindowsFom
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.ImageLocation = @"C:\CapturaPantallaI.png";
}
}
}
catch (InvalidEnumArgumentException ieae)
{
MessageBox.Show(ieae.ToString());
}
catch (Win32Exception we)
{
MessageBox.Show(we.ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
this.Show();
}
Da clic aqui para descargar el archivo con el código fuente.Fuente
http://www.codeproject.com/KB/cs/globalhook.aspx
http://www.eggheadcafe.com/community/aspnet/2/10046854/want-to-draw-on-image.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.pointtoclient.aspx
http://jalpesh.blogspot.com/2007/06/how-to-take-screenshot-in-c.html
http://www.mindfiresolutions.com/How-to-take-screenshot-programmatically-and-mail-it-in-C-647.php
http://ifdefined.com/blog/post/Screen-capture-utility-in-C-NET.aspx
http://www.developerfusion.com/code/4630/capture-a-screen-shot/
http://www.geekpedia.com/tutorial181_Capturing-screenshots-using-Csharp.html
http://www.codeproject.com/KB/cs/TeboScreen.aspx
http://stackoverflow.com/questions/1481124/capturing-altprintscreen-hot-key-and-clipboard-contents


1 Trackback or Pingback for this entry:
[...] vimos en el artículo Imprimir Pantalla en C# (Print Screen) – Medio, para poder capturar la imágen completa necesitamos el siguiente [...]