En este caso yo he creado un proyecto en WindowsForms, llamado Captura, añadí un Button y un SaveFileDialog para guarda el archivo.
El código se desarrollara en el evento Onclick del Button1, como se muestra a continuación:
private void button1_Click(object sender, EventArgs e) { Bitmap BmpScreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb); Graphics ScreenShot = Graphics.FromImage(BmpScreen); ScreenShot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy); string fileNom = String.Empty; saveFileDialog1.Filter = "Excel files (*.png)|*.png"; saveFileDialog1.RestoreDirectory = true; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { fileNom = saveFileDialog1.FileName; BmpScreen.Save(fileNom, System.Drawing.Imaging.ImageFormat.Png); } }
Al realizar en WindowsForms Por defecto se añade la referencia de System.Drawing; por lo que puedo crear los Objetos Bitmap y Graphics libremente -para tomarlo en cuenta-.
Analizando el código, Creamos el objeto bmpScreen del tipo Bitmap con los parámetros establecidos, los primeros define la dimensión y el siguiente el formato de la imagen en cuestión de gama colores como de 8 16 o 32 bits si desea puede cambiar a los diferentes parámetros que sugiere el intellisense
ScreenShot del tipo Graphics, permite obtener la pantalla y copiarla al bmpScreen, el archivo se guarda en png, usted puede elegir otro formato de imagen.
Una ves elegida la ruta y el nombre del archivo podrá verificar que se realiza la captura de la pantalla.
Hola que tal
ResponderEliminarYo uso este codigo
public void Screenshot()
{
Bitmap bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot);
gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
bmpScreenshot.Save(FileName, ImageFormat.Png);
}
he estado buscando la forma de hacer esto con un programa de C# en consola, pero no lo he logrado, solo con usando form, alguien tendrá algún tip de como hacerlo?
ResponderEliminar