在OFFICE幫助文件,金山毒霸,瑞星殺毒軟件中有一個助手的功能,用來給用戶提出幫助信息或建設。在Visual Basic .Net中使用Microsoft Agent Control 2.0組件能輕松實現這一功能。 一、添加Agent組件 啟動Visual Studio .NET2003,新建一個Visual Basic .Net應該程序。在Visual Basic .Net中右擊工具箱,選擇“添加/移除項(I)…”或者在工具欄中選擇工具菜單,在下拉菜單中選擇“添加/移除工具箱項(X)…”,在彈出的“自定義工具箱”中選擇COM頁面,選擇中“Microsoft Agent Control 2.0”組件,如下圖1所示: 圖1: 添加Agent組件
點擊“確定”后,會在工具箱中新增加一個“Microsoft Agent Control 2.0”組件,如 圖2所示:
圖2:添加Agent組件成功 二、設計程序界面 添加三個Button組件,讓用戶操作助手的不同功能。 一個ComboBox組件,讓用戶選擇助手的動作。 一個TextBox組件,讓用戶輸入助手朗讀的文字。 一個Agent組件 兩個Label組件 運行界面圖3所示:
圖3:運行界面 三、編寫代碼 1、加載助手 要使用Agent必須先把助手加載到程序中,可以使用AxAgent1.Characters.Load方法來加載助手,并加助手ID賦給事先定義好的助手類型objAgent,后面就是通過objAgent操作助手,實現代碼如下: '定義助手類型 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、實現助手動作 加載助手后就可以讓助手執行指定的動作了。 主要通過Play方法執行助手動畫, Play方法有一個參數Animation,表示指定動作。 AxAgent組件提供了幾十種動助手動作,下面給出一些常用的助手動作: 參數 動作 RestPose 恢復初始狀態 Acknowledge 承認 LookDown 向下看 Sad 悲傷 Alert 警告 LookDownBlink 向下看眨眼 Search 尋找 Announce 聲明 LookUp 向上看 StartListening 開始聆聽 Blink 眨眼 LookUpBlink 向下看眨眼 StopListening 停止聆聽 Confused 迷惑 LookLeft 向左看 Suggest 建議 Congratulate 祝賀 LookLeftBlink 向左看眨眼 Surprised 吃驚 Decline 拒絕 LookRight 向右看 Think 思考 DontRecognize 不承認 LookRightBlink 向右看眨眼 Wave 揮動 Explain 解釋 MoveDown 向下移動 Write 書寫 GestureDown 向下姿勢 MoveUp 向上移動 Processing 計算 GestureUp 向上姿勢 MoveRight 向右移動 Reading 閱讀 GestureLeft 向左姿勢 MoveLeft 向左移動 Searching 尋找 GestureRight 向右姿勢 Pleased 高興 Writing 書寫 GetAttention 獲得注意 Read 閱讀 Greet 問候 我們選取幾種常用的動作參數舉例 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 '根據用戶不同的選擇,執行不同的動作 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 運行效果如圖5所示:
圖5:助手的朗讀動作 3、卸載助手 可以使用AxAgent1.Characters.Unload方法來卸載助手,實現代碼如下: 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
|