分享
 
 
 

在VB.NET中应用Agent技术

王朝vb·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在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

End Sub

下载实例:http://pcwak.8u8.com/Agent/Agent.rar

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有