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中开发这类插件,欢迎回帖指导。

 

 

时间: 2024-10-22 04:51:19

Silverlight中也玩屏幕截图的相关文章

在Silverlight中使用SmoothStreamingMediaElement创建Smooth Streaming播放器

我在"IIS 7 Smooth Streaming技术在Silverlight 3中的应用 "一文中详细介绍了有关 IIS 7.Smooth Streaming技术以及如何在Silverlight中使用MediaElement控件播放Smooth Streaming视频的内容,在继续本文之前,如果你对什么是Smooth Streaming还存在疑问,你 可以先去看看我的那篇文章,也算作是一个入门吧. 在上一文中我向大家介绍了如何利用现有的MediaElement控件来支持Smooth

Silverlight中使用CompositionInitializer宿主MEF

MEF可以在传统应用程序中使用(包括桌面的Winform.控制台程序和Web的ASP.NET),也 可以在RIA的Silverlight中使用.在Silverlight中只是宿主的方式有所不同,实际上在 Silverlight中也可以像传统应用程序中是方式去宿主,MEF也为Silverlight提供了独特的宿 主方式,使用中需要引用System.ComponentModel.Composition.Initialization.dll动态链 接库. Silverlight中提供了一种新的宿主ME

利用F#在Silverlight中实现并行编程

随着.NET 4的发布,要在.NET平台之上进行并行编程可谓是易如反掌.实际上,微软为大家提供了三种并行编程的基础功能.第一种是提供给C++使用的并发运行时 (Concurrency Runtime);第二种是藉由.NET平台提供给托管语言的一组并行编程函数库(包括TPL.PLINQ和并行编程数据结构等);最后一种就是基于F# 本身的并行编程特性. 然而,由于考虑精简的缘故,当前的CoreCLR并未包含.NET 4中的并行函数库,从而在Silverlight(即使最新的Silverlight 4

Silverlight中的像素和比例缩放

最近在学习Silverlight,也在准备考六级,同时在网上找到的一些Silverlight的教程都是beta1的,在正式版中有很多的问题,所以尝试着通过翻译Jesse Liberty的博客来提高自己,同时也希望通过这样和大家一起学习. 原文地址:http://silverlight.net/blogs/jesseliberty/archive/2008/10/21/sizing-in-silverlight-pixels-and-stars.aspx 注:Star翻译为比例缩放,找了几本字典,

学Silverlight 2系列(21):如何在Silverlight中调用JavaScript

Silverlight中内置了对于HTML.客户端脚本等的支持.很多情况下,我们编 写的Web应用程序中用了一些JavaScript或者AJAX框架,我们希望能够在 Silverlight调用某些脚本方法,或者说在Silverlight中触发某个脚本的执行, 这时就需要用到在Silverlight中调用JavaScript,本文将简单介绍这一内容. 使用GetProperty获取脚本对象 先来看一个简单的例子,在Silverlight测试页面中放入一个div用作显示信 息: <div id=&quo

学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)

Silverlight中内置了对于HTML.客户端脚本等的支持,本文为如何在 Silverlight 2中与HTML DOM交互第二部分.在第一部分中主要介绍了如何访问 和修改已有的HTML DOM,我们还可以完全创建一个新的DOM元素或者移除一个已 有的DOM元素,除此之外,我们还可以为DOM元素添加事件处理. 创建DOM元素 首先我们来看如何创建一个新的DOM元素,最终的效果如下,当我们在文本框 中输入文字后,单击创建,将在上面的区域中创建一个li元素. 先来定义一下HTML页面,甚至Sil

学Silverlight 2系列(19):如何在Silverlight中与HTML DOM交互(上)

Silverlight中内置了对于HTML.客户端脚本等的支持,本文为如何在 Silverlight 2与HTML DOM进行交互第一部分,访问和修改DOM元素. 访问DOM元素 我们先来看一个简单的示例,如何访问HTML DOM.最终完成的效果如下,我 们将在界面放置两个div,分别为div1和div2,下面绿色的区域为Silverlight部 分,在第一个文本框中输入div的id并点击显示,将在下面显示出对应div上的文 本信息. 首先我们需要对测试页做一下修改,因为默认的Silverlig

明晰Silverlight中的依赖属性

在c#中--得益于c#3.0中的自动属性--我们可以十分轻松的通过如下代码创建一个叫做 "AuthorName"的属性. public string AuthorName { get; set; } 上面的代码就是我们熟悉的CLR属性,我们可以很方便的读/取这个属性的值.不过在 silverlight的世界中如果你想做更多更牛的事情,CLR属性就显得有些力不从心了.它们包 括--动画.数据绑定.样式/模板等等. 因此,微软在WPF中提出了依赖属性(Dependency Property

MEF程序设计指南二:Silverlight中使用CompositionInitializer宿主MEF

MEF可以在传统应用程序中使用(包括桌面的Winform.控制台程序和Web的ASP.NET),也可以在RIA的Silverlight中使用.在 Silverlight中只是宿主的方式有所不同,实际上在Silverlight中也可以像传统应用程序中是方式去宿主,MEF也为Silverlight提供了独 特的宿主方式,使用中需要引用 System.ComponentModel.Composition.Initialization.dll动态链接库. Silverlight中提供了一种新的宿主MEF