Silverlight中也玩屏幕截图

先上演示地址:

http://images.24city.com/jimmy/QQCapture/

注:首次点击,会提示未安装ActiveX插件,下载安装成功后,刷新页面,就可以截屏了。

提示:该ActiveX插件是我用Delphi7开发的纯绿色插件(调用了QQ公司的公开dll),默认会安装到c:\Capture下,大伙儿玩腻了以后,点击c:\capture\uninstall.bat,然后删除整个c:\capture即可.

 

思路:

1.截图功能在activex(即ocx文件)中完成,同时每次完成截图后,ocx中会有一个属性得到截图的base64字符串

2.silverlight中通过js调用activeX中的截屏方法,同时取得图片的base64编码字符串

3.js再继续通过与silverlight的交互,把图片base64字符串"给"到silverlight

4.silverlight最终得到截图对应的base64字符串,然后还原为图片

本文所用技术,均在我博客其它文章中有提及,这里只是将它们组合起来,完成一项小应用而已。

 

最后:

可能有人会问一个老问题,ff,chrome等非ie浏览器上怎么办,呵呵,我还真不知道,不过我在迅雷的安装中注意到一个细节:"安装迅雷多浏览器支持",换言之,ff,chrome之流虽然不支持activex技术,但是也有自己的插件接口,理论上讲,开发一套专用于ff,chrome的截屏插件,还是有希望的,如果各位知道如何在ff中开发这类插件,欢迎回帖指导。

 

 

posted @ 2010-01-15 18:05  菩提树下的杨过  阅读(5002)  评论(10编辑  收藏  举报