从ASP.Net页面获取屏幕截图

时间:2009-03-10 08:13:46

标签: com web activex screenshot

我有一个ASP.Net页面,其中有一个按钮,点击后我想截取用户PC的屏幕截图并将其发送到服务器。

我可以编写某种侦听器程序在服务器上运行以接受接收这些图像的请求。我有点模糊的地方是让用户的PC发送屏幕截图的最佳方式。这需要通过为ASP.Net页面编写某种Active X控件来完成吗?如果可能,它需要跨浏览器和操作系统。

只是朝着正确的方向迈出了一步,我应该使用哪些技术会很棒。如果可能的话,我宁愿自己编写这个功能,而不是使用开箱即用的解决方案,因为我可以看到将来可以扩展此功能。像WebEx或副驾驶这样的东西如何管理?

由于

加文

编辑:为了说清楚我不是想从用户PC窃取信息,他们必须允许这个功能,更多的是从支持的角度来看,所以当客户遇到问题他们可以发送截图他们所在的页面。

4 个答案:

答案 0 :(得分:4)

如果它需要跨浏览器和所有,你应该看看Java(小程序)。这可能听起来很旧,但我认为这是你最好的选择。 ActiveX仅适用于Windows / IE;)

对于初学者,请看一下这个非常相似的问题:Is there a way to take a screenshot using Java and save it to some sort of image?

答案 1 :(得分:3)

ActiveX可行。我怀疑你可能也可以在Silverlight,Flash或Java applet中做一些事情(这将更加跨浏览器友好)。

至于副驾驶,它运行在每个用户下载和运行的独立可执行文件中。因此,它不仅限于典型的浏览器限制。

答案 2 :(得分:1)

这只是您想要快照的网页吗?

然后,您可以从javascript文档对象访问整个页面呈现的html,并将其与浏览器类型等一起发送到Web服务。无需安装ActiveX: - )

答案 3 :(得分:1)

我使用WebsitesScreenshot组件来捕获网站截图或缩略图。 这个.NET组件非常易于使用。我喜欢这个组件。 http://www.websitesscreenshot.com/

示例代码:

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();