Captura de pantalla de la página ASPX

¿Existe una forma fácil (preferiblemente sin tener que importar bibliotecas) para tomar una captura de pantalla de una página web ASP.NET (mejor aún un control aspx) en c # y guardarla como una imagen? ¡Muchas gracias de antemano! Código de muestra o un enlace a un tutorial sería muy apreciado …

Una solución realmente sencilla: escriba una aplicación de WinForms e incluya un control de navegador. Vaya a la página de la aplicación web que está intentando capturar y luego use el método de captura de pantalla programático que se describe aquí .

Aquí hay un simple creador de capturas de pantalla, escribió hace unos años. No estoy seguro de lo que te gustaría lograr, pero esta toma una captura de pantalla de toda la pantalla. Espero que esto ayude.

using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Windows.Forms; public class ScreenshotManager { private Image screenshot; public Image Screenshot { get { if (screenshot == null) MakeScreenshot(); return screenshot; } } public MemoryStream ScreenshotToMemoryStream() { MemoryStream ms = new MemoryStream(); Screenshot.Save(ms, ImageFormat.Jpeg); ms.Position = 0; return ms; } public byte[] ScreenshotToByteArray() { return ScreenshotToMemoryStream().ToArray(); } public void MakeScreenshot() { screenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb); var graphics = Graphics.FromImage(screenshot); graphics.CopyFromScreen(0, 0, Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy); } } 

No está 100% seguro de si esto es exactamente lo que está buscando, pero este tutorial debería, al menos, ofrecerle la posibilidad de capturar una captura de pantalla y guardarla. Parece que esto limita la pantalla completa, en lugar de solo la página aspx, pero al menos debería ser un comienzo.

http://www.geekpedia.com/tutorial181_Capturing-screenshots-using-Csharp.html

http://weblogs.asp.net/jalpeshpvadgama/archive/2008/01/28/how-to-take-screenshot-in-c.aspx

La pieza más grande de eso parece ser

 using System.Drawing.Imaging; 

Debería poder juntar cosas desde allí, creo

Puede crear un control de navegador web mediante progtwigción y tomar una captura de pantalla de su área de cliente, según la creencia popular de que el navegador web no tiene que ser visible para esto, solo asegúrese de que el hilo que utiliza el control WebBrowser ejecute en el estado de apartamento ApartmentState.STA . Este enfoque funcionará tanto en el servidor como en el lado del cliente.

En un nivel alto, lo que tienes que hacer para crear el bitmap:

  1. Cree una instancia del control WebBrowser y establezca el ancho / alto deseado

  2. Navega a la URI de tu elección

  3. Espera el evento DocumentCompleted

  4. Use el DrawToBitmap() WebBrowser DrawToBitmap() para extraer la imagen