明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在VB.NET中應(yīng)用Agent技術(shù)

[摘要]在OFFICE幫助文件,金山毒霸,瑞星殺毒軟件中有一個助手的功能,用來給用戶提出幫助信息或建設(shè)。在Visual Basic .Net中使用Microsoft Agent Control 2.0組件能...
在OFFICE幫助文件,金山毒霸,瑞星殺毒軟件中有一個助手的功能,用來給用戶提出幫助信息或建設(shè)。在Visual Basic .Net中使用Microsoft Agent Control 2.0組件能輕松實現(xiàn)這一功能。
一、添加Agent組件
啟動Visual Studio .NET2003,新建一個Visual Basic .Net應(yīng)該程序。在Visual Basic .Net中右擊工具箱,選擇“添加/移除項(I)…”或者在工具欄中選擇工具菜單,在下拉菜單中選擇“添加/移除工具箱項(X)…”,在彈出的“自定義工具箱”中選擇COM頁面,選擇中“Microsoft Agent Control 2.0”組件,如下圖1所示:
圖1: 添加Agent組件

點擊“確定”后,會在工具箱中新增加一個“Microsoft Agent Control 2.0”組件,如
圖2所示:

圖2:添加Agent組件成功
二、設(shè)計程序界面
添加三個Button組件,讓用戶操作助手的不同功能。
一個ComboBox組件,讓用戶選擇助手的動作。
一個TextBox組件,讓用戶輸入助手朗讀的文字。
一個Agent組件
兩個Label組件
運(yùn)行界面圖3所示:

圖3:運(yùn)行界面
三、編寫代碼
1、加載助手
要使用Agent必須先把助手加載到程序中,可以使用AxAgent1.Characters.Load方法來加載助手,并加助手ID賦給事先定義好的助手類型objAgent,后面就是通過objAgent操作助手,實現(xiàn)代碼如下:
'定義助手類型
Dim objAgent As AgentObjects.IAgentCtlCharacterEx
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
'加載助手
AxAgent1.Characters.Load("merlin", "C:\WINNT\msagent\chars\merlin.acs")
objAgent = AxAgent1.Characters("merlin")
'顯示助手
objAgent.Show()
Button2.Enabled = True
Button3.Enabled = True
Label1.Enabled = True
Label2.Enabled = True
ComboBox1.Enabled = True
TextBox1.Enabled = True
Button1.Enabled = False
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
按F5測試程序,就可以加載并顯示助手了,所圖4如所示:

圖4:加載并顯示助手
2、實現(xiàn)助手動作
加載助手后就可以讓助手執(zhí)行指定的動作了。
主要通過Play方法執(zhí)行助手動畫, Play方法有一個參數(shù)Animation,表示指定動作。 AxAgent組件提供了幾十種動助手動作,下面給出一些常用的助手動作:
參數(shù) 動作
RestPose 恢復(fù)初始狀態(tài)
Acknowledge 承認(rèn)
LookDown 向下看
Sad 悲傷
Alert 警告
LookDownBlink 向下看眨眼
Search 尋找
Announce 聲明
LookUp 向上看
StartListening 開始聆聽
Blink 眨眼
LookUpBlink 向下看眨眼
StopListening 停止聆聽
Confused 迷惑
LookLeft 向左看
Suggest 建議
Congratulate 祝賀
LookLeftBlink 向左看眨眼
Surprised 吃驚
Decline 拒絕
LookRight 向右看
Think 思考
DontRecognize 不承認(rèn)
LookRightBlink 向右看眨眼
Wave 揮動
Explain 解釋
MoveDown 向下移動
Write 書寫
GestureDown 向下姿勢
MoveUp 向上移動
Processing 計算
GestureUp 向上姿勢
MoveRight 向右移動
Reading 閱讀
GestureLeft 向左姿勢
MoveLeft 向左移動
Searching 尋找
GestureRight 向右姿勢
Pleased 高興
Writing 書寫
GetAttention 獲得注意
Read 閱讀
Greet 問候
我們選取幾種常用的動作參數(shù)舉例
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.Items.Add("顯示")
ComboBox1.Items.Add("問候")
ComboBox1.Items.Add("隱藏")
ComboBox1.Items.Add("移動")
ComboBox1.Items.Add("朗讀")
ComboBox1.Items.Add("思考")
ComboBox1.Items.Add("閱讀")
ComboBox1.Items.Add("書寫")
ComboBox1.Items.Add("高興")
ComboBox1.Items.Add("祝賀")
ComboBox1.SelectedIndex = 0
End Sub
'根據(jù)用戶不同的選擇,執(zhí)行不同的動作
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
Select Case ComboBox1.SelectedIndex
Case 0
objAgent.Show()
Case 1
objAgent.Play("Greet")
Case 2
objAgent.Hide()
Case 3
objAgent.MoveTo(Me.Width, Me.Height)
Case 4
If TextBox1.Text <> "" Then
objAgent.Speak(TextBox1.Text)
End If
Case 5
If TextBox1.Text <> "" Then
objAgent.Think(TextBox1.Text)
End If
Case 6
objAgent.Play("Reading")
Case 7
objAgent.Play("Write")
Case 8
objAgent.Play("Pleased")
Case 9
objAgent.Play("Congratulate")
End Select
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
運(yùn)行效果如圖5所示:

圖5:助手的朗讀動作
3、卸載助手
可以使用AxAgent1.Characters.Unload方法來卸載助手,實現(xiàn)代碼如下:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Try
AxAgent1.Characters.Unload("merlin")
Button2.Enabled = False
Button3.Enabled = False
Label1.Enabled = False
Label2.Enabled = False
ComboBox1.Enabled = False
TextBox1.Enabled = False
Button1.Enabled = True
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
En