微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

  

@H_404_9@@H_404_9@

 @H_404_9@

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

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

@H_404_9@@H_404_9@

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

 @H_404_9@

1  private   void  dosBtn_Click( object  sender, RoutedEventArgs e)
2  {
3               using  (dynamic shell  =  AutomationFactory.CreateObject( " WScript.Shell " ))
4              {
5                   // shell.Run(@"cmd /k dir /w /p");
6                  shell.Run( @" cmd /k ping www.cnblogs.com -t );
7              }
8  9  }

@H_404_9@@H_404_9@

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

@H_404_9@@H_404_9@

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

 inputBtn_Click(          {
        shell.Run( c:\windows\notepad.exe         shell.SendKeys( my blog:{Enter}jv9.cnblogs.com     }

@H_404_9@@H_404_9@

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

@H_404_9@@H_404_9@

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

 regBtn_Click(  (dynamic WShell  string  reg   WShell.RegRead( HKLM\Software\Microsoft\ASP.NET\RootVer                 MessageBox.Show( .Net Framework Root Version:  +  reg);
读取结果:@H_404_9@

@H_404_9@@H_404_9@

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

@H_404_9@@H_404_9@

 1   regWriteBtn_Click(  2   3   (dynamic ShellApplication  Shell.Application  4   5                  dynamic commonPrograms   ShellApplication.NameSpace( 11  6   allUsersPath   commonPrograms.Self.Path;
 7   8                  dynamic directory   ShellApplication.NameSpace(allUsersPath    \Programs  9                  dynamic link   directory.ParseName(Deployment.Current.OutOfbrowserSettings.ShortName  .lnk 10   OOBLink   link.Path;
11  12  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\@H_404_9@

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

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

@H_404_9@@H_404_9@

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

 pinBtn_Click( 23 \Accessories  directory.ParseName( Calculator.lnk                 dynamic verbs   link.Verbs();
for  ( int  i  0 ; i  <  verbs.Count(); i ++ )
                    dynamic verb   verbs.Item(i);
                     if  (verb.Name.Replace( & .Empty).ToLower()  == pin to taskbar                     {
                        verb.DoIt();
                    }
21  当执行以上代码后,获取计算器应用快捷方式,然后执行“Pin to Taskbar”后,将应用锁定在Windows 7任务栏。@H_404_9@

@H_404_9@@H_404_9@

实例6:Silverlight Out of browser语音阅读实例@H_404_9@

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

@H_404_9@@H_404_9@

 speechBtn_Click(  (dynamic ISpeechVoice  SAPI.SpVoice                 ISpeechVoice.Volume  100 ;
                ISpeechVoice.Speak( <rate speed=\ \ ><pitch middle=\ >Hello everyone! Welcome to my blog,http://jv9.cnblogs.com 当运行以上代码后,会听到以上阅读内容。@H_404_9@

对于Silverlight Out of browser的COM应用有一款开源项目COM Toolkit,该控件在OOB模式下可以对本地数据库进行操作,推荐大家参考学习。@H_404_9@

今天就写到这里了,希望能对大家有所帮助。@H_404_9@

源代码下载@H_404_9@

欢迎大家加入"专注Silverlight" 技术讨论群:@H_404_9@

32679955(六群)
23413513(五群)
32679922(四群)
100844510(三群)
37891947(二群)
22308706(一群)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐