一个DCOM(ActiveX)问题(100分)

  • 主题发起人 主题发起人 cmxu
  • 开始时间 开始时间
C

cmxu

Unregistered / Unconfirmed
GUEST, unregistred user!
最近鄙人正在用ActiveForm+浏览器作一个MIS, 由于需要和WEB Server通信,ActiveForm在浏览器中有一个参数 CodeBase, 不知该如何取得. 另外, 用VBS可以通过如 Obj.Codebase来直接取, 在Delphi程序中不知该如何?
 
codebase是指向你cab包所在地, 直接在html中使用就可以了.
<OBJECT
CLASSID="clsid:25BDF09D-EC8B-11CF-BD97-00AA00575603"
CODEBASE="/Controls/MyContrl.cab#version=1,0,0,0"
ID=MyContrl>
</OBJECT>

 
我不是想在HTML中用, 而是希望在Delphi程序中...
 
问一句: codebase在ActiveX里有什么用吗?
 
指向WEb服务器
 
cmxu: 只有html支持codebase的调用, 也只有html才需要嘛:-)
codebase的作用是如果你没有这个activex, 那么, ie就根据codebase指使的地方
下载activex并安装, 非常非常有用:-)
不过, 我不喜欢activeform.
 
说实话,我也不喜欢ActiveForm, 可是现在的项目必须要用. 而且要和WEB Server
通信, 不知您有何高见
 
呵呵, 其实activeform就是一个客户端程序, 只不过可以通过html启动, 和web
server通信, 它要想做到, 方法与普通的应用程序没有什么不同.
与其这样, 还不如编个客户端程序省事, 界面也好得多.
 
老板投标时夸下的海口, 我现在就被卡到这里了, 各位帮帮忙, 想个办法...
 
我以前也极力跟老板推崇ActiveXForm, 后来做了一个小程序, 开始用时还可以,
等到有改动升级时, 简直把我搞的焦头烂额!! 客户机器里原来的旧的ActiveX
怎么也无法删除,不管我删除文件,解除注册,清空IE的cache都没用!!!
 

做什么呀?
还是没明白
 
Ok, 我想到一个比较笨的办法, 就是在 HTML 中加入:

Sub Form_load()
Obj.SetCodeBase(Obj.CodeBase);
End Sub

然后在Delphi程序中就可以访问了.
 
在标准的HTML集里,CODEBASE指向一个服务器路径,服务
器路径下有一个对象activex的实例,如:
<Object ....codebase=xxx.dll ></object>
表示在xxx.dll里有一个需要应用的acitvex 的实力
如果IE在系统中找不到这个control,他就会去CODEBASE指向
的地方去Down Install .
已上仅仅是在html中啦!
 
OK, 结束问题
 

Similar threads

回复
0
查看
987
不得闲
D
回复
0
查看
941
DelphiTeacher的专栏
D
D
回复
0
查看
880
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部