Como faço para capturar a tela atual como uma imagem?
-
23-08-2019 - |
Pergunta
Eu quero adicionar a capacidade para os usuários para capturar a tela atual em meu aplicativo e e-mail. Eu tenho uma base de usuários muito não técnica, então eu preciso que isso seja o mais simples possível. Eu pretendo deixá-los clicar em um item de menu chamado Help Me! que, então, capturar a tela do aplicativo atual, espero que como um jpg ou png, e, em seguida, abra o Outlook e adicionar a imagem como um anexo.
Eu estava lendo este post ScreenCapture no projeto de código, mas é uma pouco velho e não é exatamente o que eu estava procurando, então eu pensei que eu iria verificar se existe uma maneira melhor de fazer isso.
Como faço para começar a fazer isso? Existe uma biblioteca ou são o construído em capacidades suficiente?
Obrigado!
Solução
Esse post que você vinculado é a abordagem certa, eles apenas tornou muito complexo. Você iria querer usar Graphics.CopyFromScreen
.
Rectangle bounds = this.Bounds;
using(Bitmap ss = new Bitmap(bounds.Width, bounds.Height))
using(Graphics g = Graphics.FromImage(ss))
{
g.CopyFromScreen(this.Location, Point.Empty, bounds.Size);
ss.Save("test.jpg", ImageFormat.Jpeg);
}
Outras dicas
Verifique a Graphics.CopyFromScreen método.