一點(diǎn)通VB.NET操作MsAgent13步
運(yùn)用了VB.NET開發(fā)語言,在工作中總結(jié)了一點(diǎn)方法,在這里呢和大家分享一下關(guān)于VB.NET操作MsAgent的具體實(shí)現(xiàn)步驟。
VB.NET操作MsAgent的具體實(shí)現(xiàn)步驟
由于" Microsoft Agent Control 2.0"是一個(gè)COM組件,COM組件是非托管代碼文件,
要在Visual Basic .Net中使用COM組件,必須實(shí)現(xiàn)其從非托管代碼組件到托管代碼組件的轉(zhuǎn)換。.Net框架把這種轉(zhuǎn)換過程叫"互操作"。在Visual Basic .Net集成開發(fā)環(huán)境下,實(shí)現(xiàn)"互操作"是非常容易的。在互操作完成之后,就可以像使用其他組件那樣使用轉(zhuǎn)換后的MsAgent組件了。下面通過一個(gè)示例來具體介紹一下,Visual Basic .Net集成開發(fā)環(huán)境是如何對(duì)COM組件進(jìn)行互操作,和轉(zhuǎn)換后的MsAgent組件的使用方法。
1.啟動(dòng)Visual Studio .Net。
2.選擇菜單【文件】|【新建】|【項(xiàng)目】后,彈出【新建項(xiàng)目】對(duì)話框。
3.將【項(xiàng)目類型】設(shè)置為【Visual Basic項(xiàng)目】。
4.將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】。
5.在【名稱】文本框中輸入【vb.net使用MsAgent】。
6.在【位置】的文本框中輸入【E:\VS.NET項(xiàng)目】,然后單擊【確定】按鈕,這樣vb.NET使用MsAgent的項(xiàng)目文件就產(chǎn)生了。
7.把當(dāng)前窗口切換到【Form1.VB [設(shè)計(jì)]】后,選擇【工具箱】|【W(wǎng)indows窗體】,點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中選擇【自定義工具箱】菜單。具體如圖01所示:
8.切換到【Form1.VB [設(shè)計(jì)]】窗口,并從【工具箱】中的【W(wǎng)indows窗體組件】中往窗體中拖入下列組件,并執(zhí)行相應(yīng)操作:
一個(gè)ComboBox組件,用以讓讀者選擇要出現(xiàn)的精靈名稱。
一個(gè)TextBox組件,用以輸入精靈朗讀的文字,由于程序中設(shè)定的精靈朗誦的語言為英語,所以這里輸入的是英文單詞。
一個(gè)MsAgent組件
二個(gè)Label組件
四個(gè)Button組件,名稱分別是Button1、Button2、Button3和Button4,用以實(shí)現(xiàn)和MsAgent組件相關(guān)的一些功能。并在這些組件加入到窗體后,分別在【Form1.VB [設(shè)計(jì)]】窗口中雙擊這四個(gè)組件,這樣Visual Basic .Net集成開發(fā)環(huán)境會(huì)自動(dòng)產(chǎn)生這四個(gè)組件的Click事件對(duì)應(yīng)的處理代碼。
9.把Visual Basic .Net集成開發(fā)環(huán)境的當(dāng)前窗口切換到Form1.vb的代碼編輯窗口,并在Form1.VB代碼中的InitializeComponent過程之前加入下列代碼:
- Dim PlayChar As AgentObjects.IAgentCtlCharacterEx
10. Visual Basic .Net中實(shí)現(xiàn)裝入精靈。
當(dāng)程序中裝入精靈后,精靈就會(huì)顯示在Windows的狀態(tài)欄中,具體思路是把各個(gè)精靈先強(qiáng)制轉(zhuǎn)換成一個(gè)Object的對(duì)象,精靈對(duì)應(yīng)的擴(kuò)展名是"acs",然后調(diào)用MsAgent組件的"Load"方法把對(duì)象加入就可以了,并根據(jù)裝入的精靈類型來初始化上面定義的一個(gè)AgentObjects.IagentCtlCharacterEx接口的實(shí)例,后面對(duì)精靈的操作就是通過這個(gè)實(shí)例中方法來實(shí)現(xiàn)的。具體實(shí)現(xiàn)方法是用下列的代碼替換Form1.VB中的Button1的Click事件的處理代碼:
- Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
- '根據(jù)使用者的不同選擇,裝入不同的精靈類型
- 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中實(shí)現(xiàn)精靈朗誦文字動(dòng)作:
精靈實(shí)現(xiàn)朗誦文字是通過AgentObjects.IagentCtlCharacterEx接口中的Speak方法,在調(diào)用Speak方法的時(shí)候,必須注意二點(diǎn):其一,Speak方法有二個(gè)參數(shù),第一個(gè)參數(shù)就是精靈朗誦的內(nèi)容,在調(diào)用Speak方法時(shí),必須保證朗誦的內(nèi)容不為空;其二,在調(diào)用Speak方法朗誦之前,必須先調(diào)用其Show方法,把精靈顯示出來,否則雖然調(diào)用了Speak方法,由于沒有先顯示精靈,也依然無法通過精靈來朗誦。具體的實(shí)現(xiàn)方法是用下列代碼替換Form1.vb中的Button2的Click事件對(duì)應(yīng)的處理代碼:
- Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click
- PlayChar.LanguageID = 1033
- '設(shè)定精靈朗讀的語言種類對(duì)于地ID,1033是設(shè)定為英文
- PlayChar.Show ( False )
- '顯示精靈
- If TextBox1.Text.Length <> 0 Then
- '判斷TextBox1中是否有內(nèi)容
- PlayChar.Speak ( TextBox1.Text , "" )
- '開始朗誦TextBox1中的內(nèi)容
- PlayChar.Hide ( True )
- End If
- End Sub
12. 在Visual Basic .Net中實(shí)現(xiàn)精靈的思考動(dòng)作:
精靈思考動(dòng)作和朗誦動(dòng)作非常類似,最大區(qū)別是思考動(dòng)作沒有發(fā)出聲音,而朗誦動(dòng)作是有聲的。實(shí)現(xiàn)精靈思考使用的是AgentObjects.IagentCtlCharacterEx接口中Think方法,Think方法后面有一個(gè)參數(shù),就是精靈思考的內(nèi)容。在調(diào)用Think方法的時(shí)候,所要注意的問題和Speak方法一樣,讀者可參閱上面調(diào)用Speak方法要注意的二個(gè)問題。具體的實(shí)現(xiàn)方法是用下列代碼替換Form1.VB中的Button3的Click事件對(duì)應(yīng)的代碼:
- Private Sub Button3_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button3.Click
- PlayChar.LanguageID = 1033
- '設(shè)定精靈朗讀的語言種類對(duì)于地ID,1033是設(shè)定為英文
- PlayChar.Show ( False )
- '顯示精靈
- If TextBox1.Text.Length <> 0 Then
- '判斷TextBox1中是否有內(nèi)容
- PlayChar.Think ( TextBox1.Text )
- PlayChar.Hide ( True )
- End If
- End Sub
13. 卸載裝入的精靈。
由于本程序可以在一個(gè)程序中使用多個(gè)精靈,但由于變量只設(shè)定了一個(gè),所以在使用另外一個(gè)精靈的之前,必須先卸載掉已經(jīng)裝入的精靈,否則就會(huì)程序異常。卸載裝入的精靈使用的是Unload方法,Unload方法后面是已經(jīng)裝入的精靈對(duì)應(yīng)的名稱字符串。具體實(shí)現(xiàn)方法是用下列代碼替換Button4的Click事件對(duì)應(yīng)的處理代碼:
- 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
總結(jié):
本文全面介紹在VB.Net操作MsAgent的具體的實(shí)現(xiàn)方法,由于篇幅所限,并沒有完全介紹MsAgent中的精靈的全部動(dòng)作,這些動(dòng)作如"Wait"、"Listen"、"Move to"等,但是本文介紹的Speek,Show,Hide,Think動(dòng)作是精靈使用的最為常用的動(dòng)作,并且那些沒有介紹的動(dòng)作的具體實(shí)現(xiàn)方法和本文介紹的動(dòng)作實(shí)現(xiàn)方法相類似,讀者如使用本文沒有介紹的動(dòng)作時(shí),可參照本文介紹的Speek,Show,Hide,Think動(dòng)作的地實(shí)現(xiàn)方法,相信會(huì)對(duì)你有很大啟發(fā)的
【編輯推薦】