C#
- Capturando telas
Que tal uma aplicação para capturar telas usando a linguagem C# ?
Abra o seu Visual C# 2008 Express Edition e crie um projeto do tipo Windows Forms Application no menu File -> New Project e informe o nome CapturaTela;
Obs: Podemos usar o mesmo código usando o Visual C# 2010 Express Edition
A seguir no formulário form1.cs da aplicação inclua ao seguintes controles:
Defina no formulário form1.cs os controles conforme o leiaute da figura abaixo:
![]() |
Vamos ao código da aplicação...
1- Código do evento Click do botão - Capturar Tela:
private void btnCapturarTela_Click(object sender, EventArgs e)
{
//oculta o formulário e inicia a captura
this.Hide();
tmTela.Start();
}
|
Ao clicar no botão Capturar Tela a rotina oculta o formulário atual e dispara o evento do controle timer onde temos o seguinte código que irá capturar a tela:
Sem a utilização do timer não seria possível esconder o formulário atual.
private void timer1_Tick(object sender, EventArgs e)
{
//armazena a imagem no bitmap
Bitmap b = new Bitmap(TelaLargura, TelaAltura);
//copia a tela no bitmap
g = Graphics.FromImage(b);
g.CopyFromScreen(Point.Empty, Point.Empty, Screen.PrimaryScreen.Bounds.Size);
//atribui a imagem ao picturebox exibindo-a
picTela.Image = b;
this.Show();
//habilita o botão para salvar a tela
btnSalvarTela.Enabled = true;
//encerra o timer
tmTela.Stop();
}
|
O código do botão Salvar Tela é mostrado a seguir. Ele abre uma janela de diálogo e salva a tela capturada:
private void btnSalvarTela_Click(object sender, EventArgs e)
{
//abre a janela de dialogo SaveDialog para salvar o arquivo gerado na captura
DialogResult res = svdTela.ShowDialog();
if (res == DialogResult.OK)
{
//obtem a extensão do arquivo salvo
string ext = System.IO.Path.GetExtension(svdTela.FileName);
if (ext == ".jpg")
picTela.Image.Save(svdTela.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
else if (ext == ".gif")
picTela.Image.Save(svdTela.FileName, System.Drawing.Imaging.ImageFormat.Gif);
else if (ext == ".png")
picTela.Image.Save(svdTela.FileName, System.Drawing.Imaging.ImageFormat.Png);
}
}
|
Para encerrar temos o código dos botões Limpar e Encerrar que limpa o controle PictureBox e encerra a aplicação:
private void btnEncerrar_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnLimpar_Click(object sender, EventArgs e)
{
this.picTela.Image = null;
}
|
Executando o projeto e capturando uma tela teremos como resultado algo parecido com a imagem abaixo: (Observe que o formulário do projeto não foi capturado)
![]() |
Simples, simples assim...
Eu sei é apenas C# , mas
eu gosto...![]()
Pegue o projeto completo aqui: CapturaTela.zip
Referências: