Silverlight实例教程 - Out of Browser与COM互操作实例

在前面已经介绍了Silverlight的Out of Browser模式与COM的基本操作以及与Office COM的交互。这篇我们将介绍更多Silverlight Out of Brwoser的COM实例。

我们将继续使用过去的SilverlightOOBDemo项目进行简单扩展。

实例1:演示Silverlight与DOS的交互,对于Windows API熟悉的朋友应该了解,使用WShell可以运行任何Dos命令。

1 private void dosBtn_Click( object sender,RoutedEventArgse)
2 {
3 using (dynamicshell = AutomationFactory.CreateObject( " WScript.Shell " ))
4 {
5 // shell.Run(@"cmd/kdir/w/p");
6 shell.Run( @" cmd/kpingwww.cnblogs.com-t " );
7 }
8
9 }

实例2:使用WShell API模拟用户输入实例。使用WShell的SendKeys可以模拟用户输入效果到应用程序中,并且可以模拟一些特殊键功能,例如,回车,Tab,Ctrl等按键。

其中要实现模拟输入代码如下:

1 private void inputBtn_Click( object sender,RoutedEventArgse)
2 {
3 using (dynamicshell = AutomationFactory.CreateObject( " WScript.Shell " ))
4 {
5 shell.Run( @" c:/windows/notepad.exe " );
6 shell.SendKeys( " myblog:{Enter}jv9.cnblogs.com " );
7 }
8 }

实例3:Silverlight OOB应用读取注册表信息实例

使用Shell.Application的RegRead方法可以读取本地注册表键值,例如,读取“HKLM/Software/Microsoft/ASP.NET/RootVer”,.Net Framework的版本。

1 private void regBtn_Click( object sender,RoutedEventArgse)
2 {
3 using (dynamicWShell = AutomationFactory.CreateObject( " WScript.Shell " ))
4 {
5 string reg = WShell.RegRead( @" HKLM/Software/Microsoft/ASP.NET/RootVer " );
6 MessageBox.Show( " .NetFrameworkRootVersion: " + reg);
7 }
8 }

读取结果:

实例4:使用Shell.Application的RegWrite方法可以对注册表进行写操作。这个实例将实现添加Silverlight Out of Browser应用到Windows启动项。

1 private void regWriteBtn_Click( object sender,RoutedEventArgse)
2 {
3 using (dynamicShellApplication = AutomationFactory.CreateObject( " Shell.Application " ))
4 {
5 dynamiccommonPrograms = ShellApplication.NameSpace( 11 );
6 string allUsersPath = commonPrograms.Self.Path;
7
8 dynamicdirectory = ShellApplication.NameSpace(allUsersPath + @" /Programs " );
9 dynamiclink = directory.ParseName(Deployment.Current.OutOfBrowserSettings.ShortName + " .lnk " );
10 string OOBLink = link.Path;
11
12 using (dynamicWShell = AutomationFactory.CreateObject( " WScript.Shell " ))
13 {
14 WShell.RegWrite( @" HKLM/Software/Microsoft/Windows/CurrentVersion/Run/ "
15 + Deployment.Current.OutOfBrowserSettings.ShortName,
16 OOBLink);
17 MessageBox.Show( " 请重启你的机器,你的应用将被自动载入启动列表. " );
18 }
19 }
20 }

当运行以上代码后,应用会将OOB应用快捷方式写入注册表HKLM/Software/Microsoft/Windows/CurrentVersion/Run/

应用程序将在下次重启后,自动启动。

实例5:使用Windows 7 API实现锁定应用到Windows 7任务栏

在Windows 7中使用Shell.Application类库允许遍历应用,检查Verbs进行应用锁定。

1 private void pinBtn_Click( object sender,RoutedEventArgse)
2 {
3 using (dynamicShellApplication = AutomationFactory.CreateObject( " Shell.Application " ))
4 {
5 dynamiccommonPrograms = ShellApplication.NameSpace( 23 );
6 string allUsersPath = commonPrograms.Self.Path;
7
8 dynamicdirectory = ShellApplication.NameSpace(allUsersPath + @" /Accessories " );
9 dynamiclink = directory.ParseName( " Calculator.lnk " );
10
11 dynamicverbs = link.Verbs();
12 for ( int i = 0 ;i < verbs.Count();i ++ )
13 {
14 dynamicverb = verbs.Item(i);
15 if (verb.Name.Replace( @" & " , string .Empty).ToLower() == " pintotaskbar " )
16 {
17 verb.DoIt();
18 }
19 }
20 }
21 }

当执行以上代码后,获取计算器应用快捷方式,然后执行“Pin to Taskbar”后,将应用锁定在Windows 7任务栏。

实例6:Silverlight Out of Browser语音阅读实例

使用Windows自带的Speech API中的SAPI引擎SpVoice类可以实现语音阅读功能。

1 private void speechBtn_Click( object sender,RoutedEventArgse)
2 {
3 using (dynamicISpeechVoice = AutomationFactory.CreateObject( " SAPI.SpVoice " ))
4 {
5 ISpeechVoice.Volume = 100 ;
6 ISpeechVoice.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(一群)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值