先上演示地址:
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中开发这类插件,欢迎回帖指导。
时间: 2024-10-22 04:51:19