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