一点通VB.NET操作MsAgent13步

开发 后端
本文主要对VB.NET操作MsAgent的具体实现步骤进行详细的讲解和在VB.Net集成开发环境是如何对COM组件进行互操作,和转换后的MsAgent组件的使用方法。

运用了VB.NET开发语言,在工作中总结了一点方法,在这里呢和大家分享一下关于VB.NET操作MsAgent的具体实现步骤。

VB.NET操作MsAgent的具体实现步骤

由于" Microsoft Agent Control 2.0"是一个COM组件,COM组件是非托管代码文件,
要在Visual Basic .Net中使用COM组件,必须实现其从非托管代码组件到托管代码组件的转换。.Net框架把这种转换过程叫"互操作"。在Visual Basic .Net集成开发环境下,实现"互操作"是非常容易的。在互操作完成之后,就可以像使用其他组件那样使用转换后的MsAgent组件了。下面通过一个示例来具体介绍一下,Visual Basic .Net集成开发环境是如何对COM组件进行互操作,和转换后的MsAgent组件的使用方法。
1.启动Visual Studio .Net。
2.选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。
3.将【项目类型】设置为【Visual Basic项目】。
4.将【模板】设置为【Windows应用程序】。
5.在【名称】文本框中输入【vb.net使用MsAgent】。
6.在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样vb.NET使用MsAgent的项目文件就产生了。
7.把当前窗口切换到【Form1.VB [设计]】后,选择【工具箱】|【Windows窗体】,点击鼠标右键,在弹出的菜单中选择【自定义工具箱】菜单。具体如图01所示:
8.切换到【Form1.VB [设计]】窗口,并从【工具箱】中的【Windows窗体组件】中往窗体中拖入下列组件,并执行相应操作:

一个ComboBox组件,用以让读者选择要出现的精灵名称。
一个TextBox组件,用以输入精灵朗读的文字,由于程序中设定的精灵朗诵的语言为英语,所以这里输入的是英文单词。
一个MsAgent组件
二个Label组件

四个Button组件,名称分别是Button1、Button2、Button3和Button4,用以实现和MsAgent组件相关的一些功能。并在这些组件加入到窗体后,分别在【Form1.VB [设计]】窗口中双击这四个组件,这样Visual Basic .Net集成开发环境会自动产生这四个组件的Click事件对应的处理代码。

9.把Visual Basic .Net集成开发环境的当前窗口切换到Form1.vb的代码编辑窗口,并在Form1.VB代码中的InitializeComponent过程之前加入下列代码:

  1. Dim PlayChar As AgentObjects.IAgentCtlCharacterEx  

10. Visual Basic .Net中实现装入精灵。

当程序中装入精灵后,精灵就会显示在Windows的状态栏中,具体思路是把各个精灵先强制转换成一个Object的对象,精灵对应的扩展名是"acs",然后调用MsAgent组件的"Load"方法把对象加入就可以了,并根据装入的精灵类型来初始化上面定义的一个AgentObjects.IagentCtlCharacterEx接口的实例,后面对精灵的操作就是通过这个实例中方法来实现的。具体实现方法是用下列的代码替换Form1.VB中的Button1的Click事件的处理代码:

  1. Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click  
  2. '根据使用者的不同选择,装入不同的精灵类型  
  3. Select Case ComboBox1.Text  
  4. Case "Genie"  
  5. Dim myObject As Object = CType ( "genie.acs" , Object )  
  6. '装入吉利  
  7. AxAgent1.Characters.Load ( "genie" , myObject )  
  8. PlayChar = AxAgent1.Characters ( "genie" )  
  9. Case "MerLin"  
  10. Dim myObject As Object = CType ( "merlin.acs" , Object )  
  11. '装入莫林  
  12. AxAgent1.Characters.Load ( "merlin" , myObject )  
  13. PlayChar = AxAgent1.Characters ( "merlin" )  
  14. Case "Robby"  
  15. Dim myObject As Object = CType ( "robby.acs" , Object )  
  16. '装入罗比  
  17. AxAgent1.Characters.Load ( "robby" , myObject )  
  18. PlayChar = AxAgent1.Characters ( "robby" )  
  19. Case "Peedy"  
  20. Dim myObject As Object = CType ( "peedy.acs" , Object )  
  21. '装入彼得  
  22. AxAgent1.Characters.Load ( "peedy" , myObject )  
  23. PlayChar = AxAgent1.Characters ( "peedy" )  
  24. End Select  
  25. Button1.Enabled = False 
  26. Button2.Enabled = True 
  27. Button3.Enabled = True 
  28. Button4.Enabled = True 
  29. End Sub   

11. 在Visual Basic .Net中实现精灵朗诵文字动作:

精灵实现朗诵文字是通过AgentObjects.IagentCtlCharacterEx接口中的Speak方法,在调用Speak方法的时候,必须注意二点:其一,Speak方法有二个参数,第一个参数就是精灵朗诵的内容,在调用Speak方法时,必须保证朗诵的内容不为空;其二,在调用Speak方法朗诵之前,必须先调用其Show方法,把精灵显示出来,否则虽然调用了Speak方法,由于没有先显示精灵,也依然无法通过精灵来朗诵。具体的实现方法是用下列代码替换Form1.vb中的Button2的Click事件对应的处理代码:

  1. Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click  
  2. PlayChar.LanguageID = 1033 
  3. '设定精灵朗读的语言种类对于地ID,1033是设定为英文  
  4. PlayChar.Show ( False )  
  5. '显示精灵  
  6. If TextBox1.Text.Length <> 0 Then  
  7. '判断TextBox1中是否有内容  
  8. PlayChar.Speak ( TextBox1.Text , "" )  
  9. '开始朗诵TextBox1中的内容  
  10. PlayChar.Hide ( True )  
  11. End If  
  12. End Sub  

12. 在Visual Basic .Net中实现精灵的思考动作:

精灵思考动作和朗诵动作非常类似,最大区别是思考动作没有发出声音,而朗诵动作是有声的。实现精灵思考使用的是AgentObjects.IagentCtlCharacterEx接口中Think方法,Think方法后面有一个参数,就是精灵思考的内容。在调用Think方法的时候,所要注意的问题和Speak方法一样,读者可参阅上面调用Speak方法要注意的二个问题。具体的实现方法是用下列代码替换Form1.VB中的Button3的Click事件对应的代码:

  1. Private Sub Button3_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button3.Click  
  2. PlayChar.LanguageID = 1033 
  3. '设定精灵朗读的语言种类对于地ID,1033是设定为英文  
  4. PlayChar.Show ( False )  
  5. '显示精灵  
  6. If TextBox1.Text.Length <> 0 Then  
  7. '判断TextBox1中是否有内容  
  8. PlayChar.Think ( TextBox1.Text )  
  9. PlayChar.Hide ( True )  
  10. End If  
  11. End Sub  

13. 卸载装入的精灵。

由于本程序可以在一个程序中使用多个精灵,但由于变量只设定了一个,所以在使用另外一个精灵的之前,必须先卸载掉已经装入的精灵,否则就会程序异常。卸载装入的精灵使用的是Unload方法,Unload方法后面是已经装入的精灵对应的名称字符串。具体实现方法是用下列代码替换Button4的Click事件对应的处理代码:

  1. Private Sub Button4_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button4.Click  
  2. Select Case ComboBox1.Text  
  3. Case "Genie"  
  4. AxAgent1.Characters.Unload ( "genie" )  
  5. Case "MerLin"  
  6. AxAgent1.Characters.Unload ( "merlin" )  
  7. Case "Robby"  
  8. AxAgent1.Characters.Unload ( "robby" )  
  9. Case "Peedy"  
  10. AxAgent1.Characters.Unload ( "peedy" )  
  11. End Select  
  12. Button1.Enabled = True 
  13. Button2.Enabled = False 
  14. Button3.Enabled = False 
  15. Button4.Enabled = False 
  16. End Sub  


总结:

本文全面介绍在VB.Net操作MsAgent的具体的实现方法,由于篇幅所限,并没有完全介绍MsAgent中的精灵的全部动作,这些动作如"Wait"、"Listen"、"Move to"等,但是本文介绍的Speek,Show,Hide,Think动作是精灵使用的最为常用的动作,并且那些没有介绍的动作的具体实现方法和本文介绍的动作实现方法相类似,读者如使用本文没有介绍的动作时,可参照本文介绍的Speek,Show,Hide,Think动作的地实现方法,相信会对你有很大启发的

【编辑推荐】

  1. 三个案例揭秘VB.NET语法规则
  2. VB.NET实例教程对关于Array问题的解决
  3. VB.NET实例教程之查询系统启动信息案例剖析
  4. 关于VB.NET基类继承、重载、隐藏的总结归纳
  5. 演示VB.NET类定义全过程
责任编辑:田树 来源: wewill
相关推荐

2009-11-03 09:09:19

VB.NET类

2009-11-02 11:22:59

VB.NET文本文件操

2009-11-02 16:30:29

VB.NET构造器

2009-10-28 14:30:16

VB.NET RmDi

2009-11-10 17:04:29

VB.NET基础知识

2009-11-03 13:02:28

VB.NET Wind

2009-10-20 09:42:16

VB.NET编程

2009-11-02 10:42:04

VB.NET EXCE

2009-10-09 16:54:03

VB.NET窗体

2009-11-02 17:32:37

VB.NET抽象类

2009-10-29 14:22:59

VB.NET集合存储

2010-01-21 14:49:44

VB.NET操作Wor

2010-01-15 19:04:09

2009-10-29 15:28:38

VB.NET文件操作

2009-10-28 13:24:25

VB.NET文件

2010-01-12 10:19:02

VB.NET操作GDI

2010-01-11 14:28:14

VB.NET操作Exc

2009-11-02 10:30:37

VB.NET EXCE

2010-01-12 09:51:07

VB.NET操作dbf

2010-01-14 09:55:06

VB.NET IEnu
点赞
收藏

51CTO技术栈公众号