怎样使由网页上下载的ActiveX控件自动更新?

时间:2022-03-29 21:06:18
我用Delphi作了一个三层结构的系统,包括数据服务器、应用服务器和一个包含
ActiveX控件的网页,当用户进入该网页时登陆进入系统。怎样做才能在更新ActiveX控
件后,当用户进入网页时自动更新本机上的ActiveX控件(控件上已经加上了版本
号)。望能说的详细一点。

9 个解决方案

#1


服务器端建一个表
定义字段
最新版本  文件  备注 
    
在active中登陆是自动检查版本 版本不对就下载更新

#2


在放ActiveX控件的页面里,也需要指定版本号的,格式我记不清楚了,Delphi生成的测试页面里应该有的。

#3


我的主页列在下面,该怎么改?
<HTML>
<HR><center><P>
<OBJECT
  classid="clsid:0FC05E08-32EA-4A5A-A8F0-514D7927C3C6"
  codebase="Ryda.inf"
  width=794
  height=575
  align=center
  hspace=0
  vspace=0
>
</OBJECT>
</HTML>

#4


如果codebase后面是.ocx或.cab文件,写法是:
  codebase="./ParamProj1.ocx#version=1,0,0,6"
用inf文件的情况我没有试过

#5


codebase="http://IP/ActiveX/webLoginX.ocx#version=3,0,61,0"
兄弟,我跟你一样,也在做一个ActiveX三层应用系统。你的问题我困扰了很久。要让网页能够自动下载,有两个办法:
1、将客户端IE的安全性调到最低。
2、控件加签名。
第一种办法能够行通,但不太实际。你可以将你的控件签名。
具体的做法是:

首先要包括以下几个软件(Microsoft):
makecert.exe  制作cer格式的证书,即X.509证书,同时可以创建私钥
cert2spc.exe  将cer格式证书转换成spc格式证书,即PKCS #7证书
signcode.exe  将证书签署到ocx上去
chktrust.exe  检查签署证书后的ocx是否正确
然后:
1、创建一个自己的证书文件:
makecert -sv "My.PVK" -n "CN=My" my.cer
这里,my.PVK表示新创建的私人密钥保存文件名
      my是你想显示的公司名
      my.cer是你创建最后的证书文件名
2、转换cer格式为spc格式(可以省略)
cert2spc my.cer my.spc 得到dream.spc文件。
3、给ocx进行签名
运行signcode,通过界面实现的。
4、用chktrust检查是否正确
chktrust -v myProj.ocx


题外话,不知你的系统中是否用到的OpenDialog。好象有问题,请帮忙看一下:
http://www.csdn.net/expert/topic/1025/1025771.xml?temp=.9153864

#6


随便再说一句,与你的Inf文件无关。
要让你的OCX能够自动下载,必须要有签名(否则你只能用我说的第一个办法),这样客户端就会自动判断版本决定是否需要下载
上面的签名办法,控件有了签名,虽然也是“不安全”的,但会弹出一个窗口,提示用户下载。

#7


抱歉,我没在ActiveXForm中使用过OpenDialog,只在Form中用过,没有问题。

#8


控件不能是dll吗?我开发了一个ie插件,是dll的,怎么安装?

#9


inf 方式好象不支持自动更新的,你最好制成单个的OCX就可以了。

#1


服务器端建一个表
定义字段
最新版本  文件  备注 
    
在active中登陆是自动检查版本 版本不对就下载更新

#2


在放ActiveX控件的页面里,也需要指定版本号的,格式我记不清楚了,Delphi生成的测试页面里应该有的。

#3


我的主页列在下面,该怎么改?
<HTML>
<HR><center><P>
<OBJECT
  classid="clsid:0FC05E08-32EA-4A5A-A8F0-514D7927C3C6"
  codebase="Ryda.inf"
  width=794
  height=575
  align=center
  hspace=0
  vspace=0
>
</OBJECT>
</HTML>

#4


如果codebase后面是.ocx或.cab文件,写法是:
  codebase="./ParamProj1.ocx#version=1,0,0,6"
用inf文件的情况我没有试过

#5


codebase="http://IP/ActiveX/webLoginX.ocx#version=3,0,61,0"
兄弟,我跟你一样,也在做一个ActiveX三层应用系统。你的问题我困扰了很久。要让网页能够自动下载,有两个办法:
1、将客户端IE的安全性调到最低。
2、控件加签名。
第一种办法能够行通,但不太实际。你可以将你的控件签名。
具体的做法是:

首先要包括以下几个软件(Microsoft):
makecert.exe  制作cer格式的证书,即X.509证书,同时可以创建私钥
cert2spc.exe  将cer格式证书转换成spc格式证书,即PKCS #7证书
signcode.exe  将证书签署到ocx上去
chktrust.exe  检查签署证书后的ocx是否正确
然后:
1、创建一个自己的证书文件:
makecert -sv "My.PVK" -n "CN=My" my.cer
这里,my.PVK表示新创建的私人密钥保存文件名
      my是你想显示的公司名
      my.cer是你创建最后的证书文件名
2、转换cer格式为spc格式(可以省略)
cert2spc my.cer my.spc 得到dream.spc文件。
3、给ocx进行签名
运行signcode,通过界面实现的。
4、用chktrust检查是否正确
chktrust -v myProj.ocx


题外话,不知你的系统中是否用到的OpenDialog。好象有问题,请帮忙看一下:
http://www.csdn.net/expert/topic/1025/1025771.xml?temp=.9153864

#6


随便再说一句,与你的Inf文件无关。
要让你的OCX能够自动下载,必须要有签名(否则你只能用我说的第一个办法),这样客户端就会自动判断版本决定是否需要下载
上面的签名办法,控件有了签名,虽然也是“不安全”的,但会弹出一个窗口,提示用户下载。

#7


抱歉,我没在ActiveXForm中使用过OpenDialog,只在Form中用过,没有问题。

#8


控件不能是dll吗?我开发了一个ie插件,是dll的,怎么安装?

#9


inf 方式好象不支持自动更新的,你最好制成单个的OCX就可以了。