Usuário com melhor resposta
Função no c# que tira printscreen da página

Pergunta
-
Respostas
-
Boa tarde,
Você vai precisar adicionar a referência "System.Drawing" e "System.Windows.Forms " clicando a References, Add Reference... Para salvar você precisar substituir "File.WriteAllBytes(@"d:\\imagens\print.png", byteArray);" por:
FileStream fs = new FileStream(@"d:\\imagens\print.png", FileMode.OpenOrCreate); fs.Write(byteArray, 0, byteArray.Length); fs.Close();
É importante ressaltar que você não vai estar dando print na tela do "cliente" apenas na tela do "servidor". Se é isso mesmo que deseja, talvez seria mais viável você criar um serviço ou mesmo windows forms separado e fazer a requisição (chamada) do mesmo quando desejar.
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
- Marcado como Resposta RafaelVEL segunda-feira, 25 de abril de 2016 19:21
Todas as Respostas
-
Boa tarde,
Segue o código para tirar "print" da tela:
private void PrintScreen() { try { System.Drawing.Bitmap printscreen = new System.Drawing.Bitmap(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height); System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(printscreen as System.Drawing.Image); graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size); byte[] byteArray = new byte[0]; using (MemoryStream stream = new MemoryStream()) { printscreen.Save(stream, System.Drawing.Imaging.ImageFormat.Png); stream.Close(); byteArray = stream.ToArray(); } File.WriteAllBytes(@"d:\\imagens\print.png", byteArray); } catch (Exception erro) { //Tratamento de erros } }
Espero ter ajudado.
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
- Sugerido como Resposta Silvaney segunda-feira, 25 de abril de 2016 17:43
-
Obrigado amigo!
Deu o seguinte erro:
Erro de Compilação
Descrição: Erro ao compilar um recurso necessário para atender esta solicitação. Examine os detalhes específicos do erro e modifique o código fonte apropriadamente.
Mensagem de Erro do Compilador: CS0234: O nome do namespace ou o tipo 'Windows' não existe no namespace 'System'. Precisa de uma referência de assembly?
Erro de Origem:Linha 1965: try Linha 1966: { Linha 1967: System.Drawing.Bitmap printscreen = new System.Drawing.Bitmap(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height); Linha 1968: System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(printscreen as System.Drawing.Image); Linha 1969: graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);
-
-
-
Boa tarde,
Você vai precisar adicionar a referência "System.Drawing" e "System.Windows.Forms " clicando a References, Add Reference... Para salvar você precisar substituir "File.WriteAllBytes(@"d:\\imagens\print.png", byteArray);" por:
FileStream fs = new FileStream(@"d:\\imagens\print.png", FileMode.OpenOrCreate); fs.Write(byteArray, 0, byteArray.Length); fs.Close();
É importante ressaltar que você não vai estar dando print na tela do "cliente" apenas na tela do "servidor". Se é isso mesmo que deseja, talvez seria mais viável você criar um serviço ou mesmo windows forms separado e fazer a requisição (chamada) do mesmo quando desejar.
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
- Marcado como Resposta RafaelVEL segunda-feira, 25 de abril de 2016 19:21
-