苗苗老师.ACS 的应用
今天开此贴与朋友们一起学习讨论 苗苗老师.ACS在程序中的应用。
我先把我会的说出来供朋友们观摩。
1、怎么使用
(1)安装OFFICE2003时,选择安装OFFICE助手这样你的机子上就会有.ACS文件。
(2)新建一个工程
'用鼠标右击工具箱----->
'在弹出的右键菜单中选择"添加/移除项"菜单---->
'弹出"自定义工具箱"对话框----->
'切换到"COM组"件标签页----->
'在页表中选择Microsoft Agent Control 2.0 ----->
'单击确定后工具箱里就会多一个Microsoft Agent Control 2.0 控件
'双击到窗体
(3)在窗体上声明
- VB.NET code
Public 助手 As AgentObjects.IAgentCtlCharacterEx Public 助手类型 As AgentObjects.IAgentCtlAudioObjectEx '定义助手类型
然后
- VB.NET code
Private Sub But闪亮登场_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But闪亮登场.Click '从文件中装载精灵 Dim 助手名称 As String = Com助手名称.Text AxAgent1.Characters.Load(助手名称, Application.StartupPath + "\" & 助手名称 & ".ACS") 助手 = AxAgent1.Characters(助手名称) 助手.LanguageID = &H409 '设置语言为英文,只有这样它才可以说英文. 助手.Balloon.FontName = Me.Font.Name '设置气泡的字体,你还可以设置气泡的字体大小,颜色等. '助手.Balloon.Style = 1 '不知到这个是干啥用的,但可以让提示文字一直有。而不是很快就消失。 助手.Show() End Sub
- VB.NET code
Private Sub But完成动作_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But完成动作.Click Try 助手.Play(Com动作.Text) Catch ex As Exception MsgBox("无法完成") End Try End Sub
- VB.NET code
Private Sub Com动作_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Com动作.DropDown '显示所有可用动作 Com动作.Items.Clear() For Each 动作名称 As String In 助手.AnimationNames Com动作.Items.Add(动作名称) My.Computer.FileSystem.WriteAllText("C:\Test.txt", 动作名称 & Chr(13) & Chr(10), True) Next End Sub
- VB.NET code
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '第一移动到要显示的位置 Dim 位置X As Integer = Me.Left + But闪亮登场.Left + But闪亮登场.Width Dim 位置Y As Integer = Me.Top + But闪亮登场.Top 助手.MoveTo(位置X, 位置Y) '第二说出话 助手.Speak("我比较喜欢这个按钮,哈哈哈") '助手.ShowPopupMenu(100, 400) '第三做出相关动作 助手.Play("GestureRight") '第四动作完成眨眼 '助手.Play("Greet") 助手.MoveTo(位置X - 1, 位置Y - 1) '助手.Stop() '立马停止 '助手.Think("对不起,我刚才太入迷了") '思考出的文字 End Sub
还有好多玩法不会,看有没有高人指点一下,比如说:
1、如何让助手说出的话停留时间长一些?
2、如何让助手说出象MsgBox对话框一样的有是否选择的对话框?
3、苗苗老师有一个动作是走出来的,我想让打开程序时苗苗老师是走出来,而不是直接跳出来,怎么搞?
4、还有其它比较实用的功能都列出来学习学习嘛。
[解决办法]
office 助手和Microsoft Agent 不一样,曾经就这个问题和一个国外的MVP讨论过,OFFICE里面的助手是重新封装后的Microsoft Agent,不一样的,有些在OFFICE助手里简单的动作,如果要用Microsoft Agent做的话是需要自己封装Microsoft Agent的,很复杂的。如果直接调用OFFICE助手的话,则必须要求OFFICE环境支持,不好单独发布的。