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

Silverlight实例教程 - Out of Browser与COM互 *** 作实例,第1张

概述  在前面已经介绍了Silverlight的Out of Browser模式与COM的基本 *** 作以及与Office COM的交互。这篇我们将介绍更多Silverlight Out of Brwoser的COM实例。   我们将继续使用过去的SilverlightOOBDemo项目进行简单扩展。     实例1:演示Silverlight与DOS的交互,对于Windows API熟悉的朋友应该了解,使

 

在前面已经介绍了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, 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  }

 

 

 

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

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

 

1  private   voID  inputBtn_Click( object  sender, RoutedEventArgs e)
2  {
3       using  (dynamic shell  =  automationFactory.CreateObject( " WScript.Shell " ))
4      {
5          shell.Run( @" c:/windows/notepad.exe " );
6          shell.SendKeys( " my blog:{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, RoutedEventArgs e)
2  {
3               using  (dynamic WShell  =  automationFactory.CreateObject( " WScript.Shell " ))
4              {
5                   string  reg  =  WShell.RegRead( @" HKLM/Software/Microsoft/ASP.NET/RootVer " );
6                  MessageBox.Show( " .Net Framework Root Version:  "   +  reg);
7              }
8  }

 

读取结果:

 

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

 

 

 1  private   voID  regWriteBtn_Click( object  sender, RoutedEventArgs e)
 2  {
 3               using  (dynamic ShellApplication  =  automationFactory.CreateObject( " Shell.Application " ))
 4              {
 5                  dynamic commonPrograms  =  ShellApplication.nameSpace( 11 );
 6                   string  allUsersPath  =  commonPrograms.Self.Path;
 7 
 8                  dynamic directory  =  ShellApplication.nameSpace(allUsersPath  +   @" /Programs " );
 9                  dynamic link  =  directory.Parsename(Deployment.Current.OutOfbrowserSettings.Shortname  +   " .lnk " );
10                   string  OOBlink  =  link.Path;
11 
12                   using  (dynamic WShell  =  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, RoutedEventArgs e)
 2  {
 3               using  (dynamic ShellApplication  =  automationFactory.CreateObject( " Shell.Application " ))
 4              {
 5                  dynamic commonPrograms  =  ShellApplication.nameSpace( 23 );
 6                   string  allUsersPath  =  commonPrograms.Self.Path;
 7 
 8                  dynamic directory  =  ShellApplication.nameSpace(allUsersPath  +   @" /AccessorIEs " );
 9                  dynamic link  =  directory.Parsename( " Calculator.lnk " );
10 
11                  dynamic verbs  =  link.Verbs();
12                   for  ( int  i  =   0 ; i  <  verbs.Count(); i ++ )
13                  {
14                      dynamic verb  =  verbs.Item(i);
15                       if  (verb.name.Replace( @" & " string .Empty).Tolower()  ==   " pin to taskbar " )
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, RoutedEventArgs e)
2  {
3               using  (dynamic ISpeechVoice  =  automationFactory.CreateObject( " SAPI.SpVoice " ))
4              {
5                  ISpeechVoice.Volume  =   100 ;
6                  ISpeechVoice.Speak( " <rate speed=/ " 0 / " ><pitch mIDdle=/ " 0 / " >Hello everyone! Welcome to my blog,http://jv9.cnblogs.com " );
7              }
8  }

 

 

当运行以上代码后,会听到以上阅读内容。

对于Silverlight Out of browser的COM应用有一款开源项目COM Toolkit,该控件在OOB模式下可以对本地数据库进行 *** 作,@L_419_6@。

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

 

源代码下载

 

 

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

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

以上是内存溢出为你收集整理的Silverlight实例教程 - Out of Browser与COM互 *** 作实例全部内容,希望文章能够帮你解决Silverlight实例教程 - Out of Browser与COM互 *** 作实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1026738.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存