Asunto: Capturar pantalla Screenshot con Visual C# C Sharp
¿Cómo puedo capturar la pantalla actual en una imagen usando Visual C# de Visual Studio .Net? quiero capturar la pantalla actual al pulsar un botón, guardarla en un fichero de imagen y enviarla por mail. Lo del envío de mail lo tengo resuelto con vuestra aplicación en VB.Net, la he adaptado para C#:
Asunto: Re: Capturar pantalla Screenshot con Visual C# C Sharp
Anuncios
varios escribió:
¿Cómo puedo capturar la pantalla actual en una imagen usando Visual C# de Visual Studio .Net? quiero capturar la pantalla actual al pulsar un botón, guardarla en un fichero de imagen y enviarla por mail. Lo del envío de mail lo tengo resuelto con vuestra aplicación en VB.Net, la he adaptado para C#:
A continuación te mostramos el código fuente completo de una de nuestras aplicaciones en C# que publicaremos en breve, esta aplicación captura la pantalla actual y permite guardar en fichero de imagen con formato JPEG, BMP, TIFF, etc.:
Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
namespace AjpdSoftCapturaPantalla
{
public partial class formCapturarPantalla : Form
{
public formCapturarPantalla()
{
InitializeComponent();
}
private void btCapturarPantalla_Click(object sender, EventArgs e)
{
if (!System.IO.File.Exists(txtUbicacionCaptura.Text))
{
try
{
//Comprobamos si la ventana está maximizada, si lo está
//la dejamos en Normal para que funcione el hide
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
}
//ocultamos la ventana de la aplicación para que
//no aparezca en la captura de pantalla
this.Hide();
//esperamos unos milisegundos para asegurarnos que se ha ocultado la ventana
System.Threading.Thread.Sleep(250);
//obtenemos la resolución de pantalla
Rectangle tamanoEscritorio = Screen.GetBounds(this.ClientRectangle);
//creamos un Bitmap del tamaño de nuestra pantalla
Bitmap objBitmap = new Bitmap(tamanoEscritorio.Width, tamanoEscritorio.Height);
//creamos el gráifco en base al Bitmap objBitmap
Graphics objGrafico = Graphics.FromImage(objBitmap);
//transferimos la captura al objeto objGrafico en base a las medidas del bitmap
objGrafico.CopyFromScreen(0, 0, 0, 0, objBitmap.Size);
//liberamos el gráfico de memoria
objGrafico.Flush();
//mostramos la captura de memoria a la ventana de la aplicación
imgCaptura.SizeMode = PictureBoxSizeMode.StretchImage;
imgCaptura.Image = objBitmap;
imgCaptura.Visible = true;
/* Si queremos crear el PictureBox en tiempo de ejecución
var imgPictureBox = new PictureBox();
imgPictureBox.Location = new System.Drawing.Point(15, 89);
imgPictureBox.Size = new System.Drawing.Size(609, 332);
imgPictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
imgPictureBox.Image = objBitmap;
Controls.Add(imgPictureBox);
imgPictureBox.Visible = true;
*/
}
catch (Exception objError)
{
MessageBox.Show(objError.ToString(), "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
this.Show();
}
}
else
{
MessageBox.Show("Ya existe un fichero de imagen con ese " +
"nombre, seleccione otra ruta o nombre de fichero.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A