jueves, 5 de marzo de 2009

Haciendo un PrintScreen con c# en 4 líneas

Ya que en los últimos días no he podido conciliar el sueño me he dedicado a hacer cositas que pienso algún día serán útiles o simplemente son inútiles pero divertidas. y entre esas cosas se me ocurrió hacer pantallazos de lo que “alguien” está haciendo.  ¡Solo por curiosidad del gato!

Y he aquí las 4 líneas mágicas.

string filename = "C:\\imagen.png";

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);

Los namespace a importar son:

using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Imaging;

Y Sin usar P/Invoke. =D

Etiquetas de Technorati:

2 comentarios:

Roberto dijo...

Ese era, una pregunta, sabes como aplicar la funcionalidad del print Screen cuando se oprime la tecla ALT

Steven Calderon dijo...

@Roberto

Si es en un formulario, Tienes que preguntar si se presiono la tecla ALT en el evento KeyDown del formulario

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt) {
//imprimir pantalla
}
}

Espero te ayude de algo!