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

5
我有一个ASP.Net页面,其中有一个按钮,当用户点击时,我想要截取用户PC的屏幕截图并将其发送到服务器。我可以编写某种监听程序在服务器上运行,以接受接收这些图像的请求。但是我有点困惑的是如何最好地获取用户的PC来发送截图。这是否需要为ASP.Net页面编写某种Active X控件?如果可能的话,它需要跨浏览器和操作系统。只需指出正确的方向和应该使用的技术即可。如果可能的话,我宁愿自己编写此功能,而不是使用现成的解决方案,因为我可以看到此功能将来可能会扩展。类似WebEx或copilot之类的软件是如何实现的呢?
谢谢
Gavin
编辑:仅为明确起见,我并不是试图从用户PC窃取信息,他们必须允许此功能。这更多是从支持角度考虑,因此当客户遇到问题时,他们可以发送所在页面的截图。
4个回答

4

如果我用Java编写,我想我仍然可以打开到运行在服务器上的C#程序的TCP连接,并以这种方式将图像发送给它? - Gavin
为什么不直接将二进制包发布到服务器上? - Greg Dean
不知道那是可能的,但如果是的话,听起来像是理想的解决方案。 - Gavin

3

ActiveX可以工作。我怀疑您也可以在Silverlight、Flash或Java小程序中做一些事情(这将更加跨浏览器友好)。

至于Copilot,它运行在一个独立的可执行文件中,每个用户都需要下载和运行。因此,它不受典型浏览器限制的约束。


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

1

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

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


网页呈现的HTML与屏幕截图并不相同。 - Toby Allen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接