在前面已经介绍了Silverlight的Out of Browser模式与COM的基本操作以及与Office COM的交互。这篇我们将介绍更多Silverlight Out of Brwoser的COM实例。
我们将继续使用过去的SilverlightOOBDemo项目进行简单扩展。
实例1:演示Silverlight与DOS的交互,对于Windows API熟悉的朋友应该了解,使用WShell可以运行任何Dos命令。
1privatevoiddosBtn_Click(objectsender,RoutedEventArgse)
2{
3using(dynamicshell=AutomationFactory.CreateObject("WScript.Shell"))
4{
5//shell.Run(@"cmd/kdir/w/p");
6shell.Run(@"cmd/kpingwww.cnblogs.com-t");
7}
8
9}
实例2:使用WShell API模拟用户输入实例。使用WShell的SendKeys可以模拟用户输入效果到应用程序中,并且可以模拟一些特殊键功能,例如,回车,Tab,Ctrl等按键。
其中要实现模拟输入代码如下:
1privatevoidinputBtn_Click(objectsender,RoutedEventArgse)
2{
3using(dynamicshell=AutomationFactory.CreateObject("WScript.Shell"))
4{
5shell.Run(@"c:/windows/notepad.exe");
6shell.SendKeys("myblog:{Enter}jv9.cnblogs.com");
7}
8}
实例3:Silverlight OOB应用读取注册表信息实例
使用Shell.Application的RegRead方法可以读取本地注册表键值,例如,读取“HKLM/Software/Microsoft/ASP.NET/RootVer”,.Net Framework的版本。
1privatevoidregBtn_Click(objectsender,RoutedEventArgse)
2{
3using(dynamicWShell=AutomationFactory.CreateObject("WScript.Shell"))
4{
5stringreg=WShell.RegRead(@"HKLM/Software/Microsoft/ASP.NET/RootVer");
6MessageBox.Show(".NetFrameworkRootVersion:"+reg);
7}
8}
读取结果:
实例4:使用Shell.Application的RegWrite方法可以对注册表进行写操作。这个实例将实现添加Silverlight Out of Browser应用到Windows启动项。
1privatevoidregWriteBtn_Click(objectsender,RoutedEventArgse)
2{
3using(dynamicShellApplication=AutomationFactory.CreateObject("Shell.Application"))
4{
5dynamiccommonPrograms=ShellApplication.NameSpace(11);
6stringallUsersPath=commonPrograms.Self.Path;
7
8dynamicdirectory=ShellApplication.NameSpace(allUsersPath+@"/Programs");
9dynamiclink=directory.ParseName(Deployment.Current.OutOfBrowserSettings.ShortName+".lnk");
10stringOOBLink=link.Path;
11
12using(dynamicWShell=AutomationFactory.CreateObject("WScript.Shell"))
13{
14WShell.RegWrite(@"HKLM/Software/Microsoft/Windows/CurrentVersion/Run/"
15+Deployment.Current.OutOfBrowserSettings.ShortName,
16OOBLink);
17MessageBox.Show("请重启你的机器,你的应用将被自动载入启动列表.");
18}
19}
20}
当运行以上代码后,应用会将OOB应用快捷方式写入注册表HKLM/Software/Microsoft/Windows/CurrentVersion/Run/
应用程序将在下次重启后,自动启动。
实例5:使用Windows 7 API实现锁定应用到Windows 7任务栏
在Windows 7中使用Shell.Application类库允许遍历应用,检查Verbs进行应用锁定。
1privatevoidpinBtn_Click(objectsender,RoutedEventArgse)
2{
3using(dynamicShellApplication=AutomationFactory.CreateObject("Shell.Application"))
4{
5dynamiccommonPrograms=ShellApplication.NameSpace(23);
6stringallUsersPath=commonPrograms.Self.Path;
7
8dynamicdirectory=ShellApplication.NameSpace(allUsersPath+@"/Accessories");
9dynamiclink=directory.ParseName("Calculator.lnk");
10
11dynamicverbs=link.Verbs();
12for(inti=0;i<verbs.Count();i++)
13{
14dynamicverb=verbs.Item(i);
15if(verb.Name.Replace(@"&",string.Empty).ToLower()=="pintotaskbar")
16{
17verb.DoIt();
18}
19}
20}
21}
当执行以上代码后,获取计算器应用快捷方式,然后执行“Pin to Taskbar”后,将应用锁定在Windows 7任务栏。
实例6:Silverlight Out of Browser语音阅读实例
使用Windows自带的Speech API中的SAPI引擎SpVoice类可以实现语音阅读功能。
1privatevoidspeechBtn_Click(objectsender,RoutedEventArgse)
2{
3using(dynamicISpeechVoice=AutomationFactory.CreateObject("SAPI.SpVoice"))
4{
5ISpeechVoice.Volume=100;
6ISpeechVoice.Speak("<ratespeed=/"0/"><pitchmiddle=/"0/">Helloeveryone!Welcometomyblog,http://jv9.cnblogs.com");
7}
8}
当运行以上代码后,会听到以上阅读内容。
对于Silverlight Out of Browser的COM应用有一款开源项目COM Toolkit,该控件在OOB模式下可以对本地数据库进行操作,推荐大家参考学习。
今天就写到这里了,希望能对大家有所帮助。
源代码下载
欢迎大家加入"专注Silverlight" 技术讨论群:
32679955(六群)
23413513(五群)
32679922(四群)
100844510(三群)
37891947(二群)
22308706(一群)
分享到:
相关推荐
Klotski是一个困难的滑块游戏。这个游戏的第一个版本早在几年前,Windows 3.1的游戏包中就有了。这是原者的Silverlight 2 版本。
随着Silverlight 2 Beta 更新的发布,这个航线演示的例子展示了Silverlight的伟大魔力。可以看到想要在浏览器上带给用户丰富的体验,使用Silverlight编程是多么的容易实现。
Silverlight Surface 给人一种有趣和灵活的感觉,这正是Microsoft “Surface”产品所拥有的。这个例子提供了一些照片,对每张照片你都能十分轻易的移动、改变大小和旋转。
SilverLight入门系列教程,本教程共计23课时。
SilverLight学习笔记--Silverlight之数据校验的实现
silverlight-通过-WebService-连接数据库.doc
pro-silverlight-2-in-c-2008-windows-net.pdf
模拟微软DirectX数学库,这个例子展示了在Silverlight中如何做一个完美的3D动画。
SourceCode-Silverlight-InstallExperience-SC.zip Silverlight 源码
商业源码-编程源码-Silverlight Photo Browser源码.zip
在这个键盘控制的Silverlight大钢琴上展示你的音乐才华。键盘可以控制动画和声音。
用模拟时钟演示时间小时、分钟、秒钟的显示。
C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手
SilverLight入门教程 ——基于ASP.NET运行环境示例 郑 健
Silverlight 4 Problem - Desgin - Solution是由Wrox公司推出的Silverlight 4新书,该书使用10余中案例,详细介绍Silverlight 4项目设计,和在设计过程中会发生的问题,以及相关解决方案。该书是目前市面上不可多得...
Sprawl是一个基础的鼠标点击游戏,您可以和计算机进行比赛,看谁能在地图上获得更多的地盘。
This book uses the popular Problem – Design – Solution strategy to demonstrate how to harness the power and abilities of Silverlight 4 to add value to the overall user experience of a Web site. ...
Silverlight_json-rpc
Silverlight-Developer-x64文件版本5.1.30514.0
VS2010创建SILVERLIGHT项目时提示“你需要安装时新的SILVERLIGHT DEVELOPER运行时”。解决这个问题,可以先安装这个程序,然后搜索我的资源,安装第二个程序:Silverlight5_Developer--“需要安装最新的silverlight ...