怎么回事情呢?(大菜鸟的问题)(100分)

  • 主题发起人 主题发起人 maocx
  • 开始时间 开始时间
M

maocx

Unregistered / Unconfirmed
GUEST, unregistred user!
我利用delphi生成一个ActiveXForm,然后利用工程中的网络配置中进行配置,生成的html
,如够自己本机上不注册的话,ActiveForm下载下来也不能注册,这是怎么回事情呢?
 
有关ActivexForm的注册,有两种方式,一种就是手动用regsvr32来注册,还有一种就是在服务器端
发布,客户端可以检测到,并下载,注意,一般自己做的Activex均为未授权的,你要到Microsoft去申请
数字签名才可以自动下载并注册,如果没有数字签名,你应该把IE中“未签名的Activex”改为起用或者
把安全级别设置为低即可下载并注册
 
现在还在尝试阶段。所以没有考虑到签名的问题,一般是把IE级别降低,使得Activex可以
自动下载。
但是,当我利用delphi自动生成的html运行的时候,其实他已经下载了,但是根本没有注册,
所以也就不能正常显示。
另外,如果我用regsvr32注册,当然可以正常显示,实在是不明白。
还望请教!
 
你用delphi生成html?
不知道你想知道些什么?
 
楼上采用手工方式,还有降低安全性的做法,都不好。应该做数字签名。
不用去微软,你看我以前的旧帖子,提供了一个下载和说明。专门做数字签名的。
即便是在本机上运行,也要进行注册,否则看不到表单内容。
 
楼上的,能把那文章贴出来吗,我也正在为签名的事烦呢,多谢
 
我当然知道不好,数字签名我也做了。
关键的问题是现在客户端下载的时候不能自动注册。

下面就是delphi自动产生的一个html文件

<HTML>
<H1> Delphi 6 ActiveX Test Page </H1><p>
You should see your Delphi 6 forms or controls embedded in the form below.
<HR><center><P>
<OBJECT
classid="clsid:EEDA9266-D41B-4D1C-AB3E-D745A060F8C9"
codebase="http://MAOCX:8080/ebank/jsp/private/ActiveFormProj1.inf"
width=538
height=350
align=center
hspace=0
vspace=0
>
</OBJECT>
</HTML>
 
应该是你打包发布时候出了问题
打包发布:
将Project/option中的Version info中的include version information in project选中,代表了每编译一次,版本就自动
变新,同时在project/web deployment option 中的几个数值都设置一下,再project/web deploy一下,即可

客户端:
<OBJECT classid="clsid:D73FF376-690D-11D3-B477-204C4F4F5020" id=myactive></object>
 
是阿,我已经选择了全部应该选择的。可是还是不行。

即使我把
codebase="http://MAOCX:8080/ebank/jsp/private/ActiveFormProj1.inf"
替换为
codebase="http://MAOCX:8080/ebank/jsp/private/ActiveFormProj1.ocx"
还是不能自动下载并且注册。
郁闷中!!!

如果我手工注册的话,无论什么形式他都能够运行的。当然在实际B/S中不可能在客户端进行
手工注册的,必须在数字签名以后实现自动注册的。

 
不会的,再认真看看发布的过程,应该可以的
 
哈哈,问题解决了.

其实,完全可以利用.inf文件进行自动提供下载.

关键的原因是利用delphi网络配置生成的inf文件必须进行修改
如果你在创建新的ActiveX选择了Make Control Licensed,
则delphi会自动生成一个.lic文件.如果你的相对路径中不能找到这个文件,也就不能
自动下载注册.

我的方法是将自动生成的.lic文件添加到我的相对路径下面,同时修改.inf文件
未修改前自动生成的.inf
;Delphi-generated INF file for UserDllP.ocx
[Add.Code]
UserDllP.ocx=UserDllP.ocx
Mydll.dll=Mydll.dll
UserDllP.lic=UserDllP.lic

[UserDllP.ocx]
file=./UserDllP.cab
clsid={36948BD1-403B-4434-84CA-E8AD175035EF}
RegisterServer=yes
FileVersion=1,1,4,0

[Mydll.dll]
file=./UserDllP.cab
FileVersion=1,0,0,0

修改以后的.inf

;Delphi-generated INF file for UserDllP.ocx
[Add.Code]
UserDllP.ocx=UserDllP.ocx
Mydll.dll=Mydll.dll
UserDllP.lic=UserDllP.lic

[UserDllP.ocx]
file=./UserDllP.cab
clsid={36948BD1-403B-4434-84CA-E8AD175035EF}
RegisterServer=yes
FileVersion=1,1,4,0

[Mydll.dll]
file=./UserDllP.cab
FileVersion=1,0,0,0
//////////////////////
添加一下的两句就ok了.
[UserDllP.lic]
file=./UserDllP.lic
//////////////////

你们说我是不是应该给你们分呢?
 
www.8421.org/download.php?id=156&amp;down=1

别忘给我加分
 
可我为什么找不到*.inf文件呢?关闭浏览器后还出现内存读写错误呢,
我新建一个空的activeform也是一样,好烦!
 

Similar threads

D
回复
0
查看
930
DelphiTeacher的专栏
D
D
回复
0
查看
871
DelphiTeacher的专栏
D
D
回复
0
查看
945
DelphiTeacher的专栏
D
D
回复
0
查看
777
DelphiTeacher的专栏
D
后退
顶部