2009-03-10 15 views
5

Tengo una página ASP.Net que tiene un botón que cuando hace clic me gustaría tomar una captura de pantalla de la PC del usuario y enviarla a un servidor.Obtenga una captura de pantalla de una página de ASP.Net

Estoy de acuerdo con escribir algún tipo de programa de escucha para ejecutar en el servidor para aceptar solicitudes para recibir estas imágenes. Donde estoy un poco confuso es la mejor manera de hacer que la PC del usuario envíe la captura de pantalla. ¿Se debe hacer esto escribiendo algún tipo de control Active X para la página ASP.Net? Si es posible, debe ser un navegador cruzado y un sistema operativo.

Solo un punto en la dirección correcta y qué tecnologías debería usar sería genial. Prefiero escribir esta funcionalidad yo mismo si es posible que usar una solución lista para usar, ya que puedo ver que esta funcionalidad se puede extender en el futuro. ¿Cómo gestiona esto algo como WebEx o copiloto?

Gracias

Gavin

Editar: Sólo para que quede claro que no estoy tratando de robar información de los usuarios de un PC, que tendrían que permitir esta funcionalidad, es más desde el punto de vista de soporte entonces, cuando un cliente tiene problemas, puede enviar una captura de pantalla de la página en la que se encuentra.

Respuesta

4

Si necesita ser un navegador cruzado y todo, debe echar un vistazo a Java (applets). Puede sonar a la vieja usanza, pero creo que es tu mejor opción. ActiveX funciona en Windows/IE sólo;)

Para empezar, echar un vistazo a esta pregunta, que es bastante similar: Is there a way to take a screenshot using Java and save it to some sort of image?

+0

Si lo he escrito en Java, supongo que todavía podía abrir una conexión TCP a un programa en C# que se ejecuta en el servidor y enviar la imagen de esa manera? – Gavin

+0

¿Por qué no solo publica el paquete binario en el servidor? –

+0

No sabía que eso fuera posible, pero si lo es, parece ser la solución ideal. – Gavin

3

ActiveX funcionaría. Sospecho que también podría hacer algo en los apliques de Silverlight, Flash o Java (que serían más compatibles con los navegadores).

En cuanto a copiloto, se ejecuta en un ejecutable independiente que cada usuario descarga y ejecuta. Por lo tanto, no se limita a las limitaciones típicas del navegador.

1

Es solo la página web que desea una instantánea de?

A continuación, puede acceder a la totalidad de las páginas HTML representado por el objeto documento javascript y enviarlo a un servicio web, junto con el tipo de navegador, etc. No se requiere la instalación de ActiveX :-)

+0

la página web representada en HTML no es lo mismo que una captura de pantalla. –

1

utilizo componente WebsitesScreenshot página web para capturar pantalla o imagen en miniatura. Este componente .NET es muy fácil de usar. Amo este componente. http://www.websitesscreenshot.com/

Código de ejemplo:

WebsitesScreenshot.WebsitesScreenshot _Obj; 
_Obj = new WebsitesScreenshot.WebsitesScreenshot(); 

WebsitesScreenshot.WebsitesScreenshot.Result _Result; 
_Result = _Obj.CaptureWebpage("http://www.msn.com"); 

if (_Result == WebsitesScreenshot.WebsitesScreenshot.Result.Captured) 
{ 
    _Obj.ImageWidth = 200; 
    _Obj.ImageHeight = 300; 
    _Obj.ImageFormat = WebsitesScreenshot.WebsitesScreenshot.ImageFormats.PNG; 
    _Obj.SaveImage("c:\\msn.png"); 
} 
_Obj.Dispose(); 
+0

Esta herramienta cuesta $$. – Justin

Cuestiones relacionadas