如何在C++builder中调用Microsoft agent

转载 2006年05月22日 00:39:00
  选择自 sas_razor 的 Blog

弄了整整一个晚上,看了无数大师们的资料,终于把merlin显示在我的桌面上。网上关于这方面的资料有不少,但是照搬这些程序的时候总是有很多错误,下面是CSDN里的一个贴子:                                                            CSDN - 专家门诊 - C++ Builder VCL组件使用和开发问题

http://community.csdn.net/Expert/TopicView3.asp?id=4074506

有不少朋友提供的非常有价值的信息,如constantine(飘遥的安吉儿)F117p((兰色狐狸),但是照搬这些程序仍有很多错误,不能正确调用MS agent.

那么,下面我想和大家分享一下在C++builder中调用Microsoft agent的一些技巧。

step 1: 调用MS agent 首先要安装 microsoft agent 2.0, windows2000 及XP均已安装了该程序,一般情况下不必安装,当然除非是你曾经卸载了它。

step 2:打开C++builder,菜单component ->import activeX control..., 选择 microsoft agent  control 2.0,然后install,之后系统会提示你编译,确认。成功后,ms agent 已经安装到了 ActiveX 控件栏上了,名字是TAgent. (这里想谈一下如何卸掉TAgent的方法,可能有人会用到,因为一次安装不成功的话,必须要卸掉重新安装。在BCB里打开dclusr.bpk,在package-dclusr.bpk窗口里把和agentobjects_OCX有关的两个文件remove掉,然后重新compile,再重复step 2)

step 3: 新建一个项目,在Form1里添加如下代码,这些代码可放在form_create里,也可以放在你需要的地方:

char tmp[100];                                   //用来暂存windows安装目录
GetWindowsDirectory(tmp,100);   //取得windows安装目录
String tmppath=String(tmp)+"//msagent//chars//Merlin.acs";     
//String(tmp)是把char类型转变为String,然后将文件的完整路径存入tmppath
BSTR Agentname = BSTR("merlin");           //将String 类型转变为 wchar_t*
Variant Agentpath = Variant(tmppath);        //将tmppath 类型转变为tagVARIANT

Agent1->Characters->Load(Agentname,Agentpath);    
//载入ms agent 人物,Load的格式为Load(wchar_t*,tagVARIANT)
IAgentCtlCharacterEx* Merlin = (IAgentCtlCharacterEx*)Agent1->Characters->Character(Agentname);
把人物指定给一个变量 Merlin,当然你可以自己命名

//下面是一些基本的测试,有关ms agent操纵的更详细内容请参阅有关文档
Merlin->Show(Variant(0));
Merlin->MoveTo(100,100,Variant(2));
Merlin->Play(WideString("Search"));

//以上程序在C++Builder 6.0 上编译通过。

总结:BCB中操纵MS agent最多的错误就是数据类型的不匹配,BSTR() 及Variant()则很好地解决了这个问题。大家学习BCB的时候不要着急,这两个函数都是我慢慢试出来的,同时也感谢各网友提供的WideString,c_bstr(),Tvariant()等函数。

图解微软ReportBuilder3连接Sql Server 2008数据库表创建报表

ReportBuilder3下载; http://pan.baidu.com/s/1skFeGVj 这东西还是一个好东东; 下面演示使用ReportBuilder3连接sql s...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年08月16日 18:44
  • 1815

c++builder 多线程问题

一、初识TThread对象 VCL提供了用于多线程编程的TThread类,在这个类中封装了Windows关于线程机制的Windows API,通常将它的实例成为线程对象。线程对象通过封装简化了多线程...
  • baidu_20834545
  • baidu_20834545
  • 2015年04月22日 10:01
  • 1636

C++Builder 资料库

转自:  1.怎样在C++Builder中创建使用DLL  2.用C++Bulider在WIN.INI中保存信息  3.如何在C++Builder中检测硬件  4.C++Builder如何...
  • hemeinvyiqiluoben
  • hemeinvyiqiluoben
  • 2014年09月02日 14:16
  • 2312

利用C++Builder 中OLE自动化功能实现调用Word进行报表制作

利用C++Builder 中OLE自动化功能实现调用Word进行报表制作 一、概述   在我们利用C++Builder进行报表设计和打印处理时,我们往往是用C++Builder自己所提供的QRep...
  • qq1132770390
  • qq1132770390
  • 2016年08月27日 09:39
  • 654

c++builder ZIP文件解压与压缩(ZLIB DLL调用),目录复制与删除整合的自用类,可自行扩张!

头文件:ZipAndFile.h //--------------------------------------------------------------------------- #if...
  • goodai007
  • goodai007
  • 2012年03月31日 10:24
  • 3527

c++builder调用vc的dll

 联系订阅随笔- 93  文章- 0  评论- 3  c++builder调用vc的dll $bcb/bin目录中有个implib.exe 把你...
  • chenbindsg
  • chenbindsg
  • 2015年12月28日 16:04
  • 266

BCB(C++Builder或Embarcadero XE)中调用托管DLL的方法(C++调用C#的DLL)

有时候我们的C++代码需要调用C#写的DLL,这就带来一个问题,非托管程序如何调用托管DLL?解决方法是:把C#写的DLL注册成COM组件,这样就可以非托管程序中调用了。详细操作步骤请见本图文教程。...
  • powerants
  • powerants
  • 2014年09月10日 22:14
  • 1122

C++Builder调用MATLAB程序的接口方法.

  • 2012年08月04日 03:29
  • 135KB
  • 下载

AngelScript for BCB6(C++builder) 库文件 调用范例

  • 2009年10月30日 19:46
  • 1.64MB
  • 下载

C++Builder建立及调用DLL

  • 2015年01月28日 09:36
  • 42KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在C++builder中调用Microsoft agent
举报原因:
原因补充:

(最多只允许输入30个字)