一點通VB.NET操作MsAgent13步
運用了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過程之前加入下列代碼:
- Dim PlayChar As AgentObjects.IAgentCtlCharacterEx
10. Visual Basic .Net中實現裝入精靈。
當程序中裝入精靈后,精靈就會顯示在Windows的狀態欄中,具體思路是把各個精靈先強制轉換成一個Object的對象,精靈對應的擴展名是"acs",然后調用MsAgent組件的"Load"方法把對象加入就可以了,并根據裝入的精靈類型來初始化上面定義的一個AgentObjects.IagentCtlCharacterEx接口的實例,后面對精靈的操作就是通過這個實例中方法來實現的。具體實現方法是用下列的代碼替換Form1.VB中的Button1的Click事件的處理代碼:
- Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
- '根據使用者的不同選擇,裝入不同的精靈類型
- Select Case ComboBox1.Text
- Case "Genie"
- Dim myObject As Object = CType ( "genie.acs" , Object )
- '裝入吉利
- AxAgent1.Characters.Load ( "genie" , myObject )
- PlayChar = AxAgent1.Characters ( "genie" )
- Case "MerLin"
- Dim myObject As Object = CType ( "merlin.acs" , Object )
- '裝入莫林
- AxAgent1.Characters.Load ( "merlin" , myObject )
- PlayChar = AxAgent1.Characters ( "merlin" )
- Case "Robby"
- Dim myObject As Object = CType ( "robby.acs" , Object )
- '裝入羅比
- AxAgent1.Characters.Load ( "robby" , myObject )
- PlayChar = AxAgent1.Characters ( "robby" )
- Case "Peedy"
- Dim myObject As Object = CType ( "peedy.acs" , Object )
- '裝入彼得
- AxAgent1.Characters.Load ( "peedy" , myObject )
- PlayChar = AxAgent1.Characters ( "peedy" )
- End Select
- Button1.Enabled = False
- Button2.Enabled = True
- Button3.Enabled = True
- Button4.Enabled = True
- End Sub
11. 在Visual Basic .Net中實現精靈朗誦文字動作:
精靈實現朗誦文字是通過AgentObjects.IagentCtlCharacterEx接口中的Speak方法,在調用Speak方法的時候,必須注意二點:其一,Speak方法有二個參數,第一個參數就是精靈朗誦的內容,在調用Speak方法時,必須保證朗誦的內容不為空;其二,在調用Speak方法朗誦之前,必須先調用其Show方法,把精靈顯示出來,否則雖然調用了Speak方法,由于沒有先顯示精靈,也依然無法通過精靈來朗誦。具體的實現方法是用下列代碼替換Form1.vb中的Button2的Click事件對應的處理代碼:
- Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click
- PlayChar.LanguageID = 1033
- '設定精靈朗讀的語言種類對于地ID,1033是設定為英文
- PlayChar.Show ( False )
- '顯示精靈
- If TextBox1.Text.Length <> 0 Then
- '判斷TextBox1中是否有內容
- PlayChar.Speak ( TextBox1.Text , "" )
- '開始朗誦TextBox1中的內容
- PlayChar.Hide ( True )
- End If
- End Sub
12. 在Visual Basic .Net中實現精靈的思考動作:
精靈思考動作和朗誦動作非常類似,最大區別是思考動作沒有發出聲音,而朗誦動作是有聲的。實現精靈思考使用的是AgentObjects.IagentCtlCharacterEx接口中Think方法,Think方法后面有一個參數,就是精靈思考的內容。在調用Think方法的時候,所要注意的問題和Speak方法一樣,讀者可參閱上面調用Speak方法要注意的二個問題。具體的實現方法是用下列代碼替換Form1.VB中的Button3的Click事件對應的代碼:
- Private Sub Button3_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button3.Click
- PlayChar.LanguageID = 1033
- '設定精靈朗讀的語言種類對于地ID,1033是設定為英文
- PlayChar.Show ( False )
- '顯示精靈
- If TextBox1.Text.Length <> 0 Then
- '判斷TextBox1中是否有內容
- PlayChar.Think ( TextBox1.Text )
- PlayChar.Hide ( True )
- End If
- End Sub
13. 卸載裝入的精靈。
由于本程序可以在一個程序中使用多個精靈,但由于變量只設定了一個,所以在使用另外一個精靈的之前,必須先卸載掉已經裝入的精靈,否則就會程序異常。卸載裝入的精靈使用的是Unload方法,Unload方法后面是已經裝入的精靈對應的名稱字符串。具體實現方法是用下列代碼替換Button4的Click事件對應的處理代碼:
- Private Sub Button4_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button4.Click
- Select Case ComboBox1.Text
- Case "Genie"
- AxAgent1.Characters.Unload ( "genie" )
- Case "MerLin"
- AxAgent1.Characters.Unload ( "merlin" )
- Case "Robby"
- AxAgent1.Characters.Unload ( "robby" )
- Case "Peedy"
- AxAgent1.Characters.Unload ( "peedy" )
- End Select
- Button1.Enabled = True
- Button2.Enabled = False
- Button3.Enabled = False
- Button4.Enabled = False
- End Sub
總結:
本文全面介紹在VB.Net操作MsAgent的具體的實現方法,由于篇幅所限,并沒有完全介紹MsAgent中的精靈的全部動作,這些動作如"Wait"、"Listen"、"Move to"等,但是本文介紹的Speek,Show,Hide,Think動作是精靈使用的最為常用的動作,并且那些沒有介紹的動作的具體實現方法和本文介紹的動作實現方法相類似,讀者如使用本文沒有介紹的動作時,可參照本文介紹的Speek,Show,Hide,Think動作的地實現方法,相信會對你有很大啟發的
【編輯推薦】