VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 利用Visual Basic开发微软代理控件
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:8895, 日期:2001-09-13
一、 引言
相信广大的程序设计人员对Microsoft 公司的办公套件Office系列产品一定不会陌生,而且也一定会注意到那个外型古怪的Office助手,当我们需要寻求帮助,按下F1键时它就会从天而降,为我们进行解答,当完成任务后又会慢慢的缩小直至消失。这无疑比寻常呆板的Windows风格的帮助友善许多。会使用户觉的产品的人机界面更加亲切,如果在我们自己的应用程序中也能实现上述功能无疑会使我们的程序看上去高一个档次。本文就以VB为例对此进行了详细的介绍。

二、 程序的设计实现

Microsoft Visual Basic 6.0以其简洁的语言、强大的功能、精美的界面和Visual C++、Delphi、C++Builder等语言一样得到了广泛的应用,尤其是对Active X控件方面的编程非常方便简洁,所以本文示例程序选用VB作为实现语言。

打开Office目录我们会发现里面有众多的可执行文件和动态连接库以及一些奇怪后缀的文件,而且向Office这么大型的软件一般是要划分为若干个模块的,一个或几个相关功能的文件会单独以文件的形式存盘,在执行时根据需要临时调用执行,所以Office助手应该也不例外,经过寻找,发现后缀为acs的文件的类型说明为Microsoft Agent Character File,表明了是我们所需要的微软代理模块文件。

用VB新建一个标准EXE文件,按Ctrl+T热键打开"部件"窗口,从中选中Microsoft Agent Control 2.0,并将其新添加的图标从工具栏添加到窗体,之后就可以象使用其他Active X控件一样使用它了,其主要属性有Connected、Index、Left、RaiseRequestError、Tag、Top等,均取其缺省值即可。使用时先将.acs文件装载,然后将其显示并按规定的动作播放即可,首先定义COM接口IAgentCtlCharacterEx和IAgentCtlRequest的对象:

Dim Dot0 As IAgentCtlCharacterEx
Dim AgentRequest As IagentCtlRequest

然后通过Set语句对其进行设置:

Set AgentRequest = Agent1.Characters.Load("Dot0", "C:\.Logo.acs")
Set Dot0 = Agent1.Characters.Character("Dot0")

剩下的工作就是调用Dot0对象的 Shou函数将其显示以及Play函数对其进行播放,最终用Hide函数将其隐藏即可:

Dot0.Show (0)
Dot0.Play ("Alert")
Dot0.Hide(0)

在此"Alert"就是我们将要播放的动作,类似的动作有诸如LookDown、Wave等等很多种,现列表如下请根据需要酌情在程序中选用适当的动作:

  

小结:本文所述的方法对所有的Office办公套件中的.acs文件都适用,动作名称也都相一致,可以完全按本文所述代码实现,但对于第三方开发的acs文件,则应当按照其文档的描述对本文代码稍事修改即可,否则有可能会引发不可预料的非法错误的产生。

注:本程序在Windows 98 第二版下,由Microsoft Visual Basic 6.0中文版编译通过,由Microsoft Office 97提供对acs文件的支持。