废了很大劲,查了很多资料,ocx、cer、spc 、inf、cab 都做好了
把 inf 和ocx 打包成 cab,然后用 singcode 对 .cab文件签名,最后放在web服务器上。
打开网页时提示安装并运行,但是页面出错。
感觉控件根本没有下载。ocx 在本机注册、运行正常,htm页面在本地打开正常。
链接 http://192.168.3.167/download/webdown.cab 可以下到webdown.cab
谢谢!附1(inf文件)[version]
signature="$CHINA$"
AdvancedINF=2.0[Add.Code]
webdown.ocx=webdown.ocx
[WebOffice.ocx]
file-win32-x86=thiscab
clsid={40CF48AF-E75D-4B5E-97A7-A37D1F9110F0}
FileVersion=1,0,0,1
RegisterServer=yes附2(htm页面):
<html>
<head>
<title>OBS-SNMP-MANAGER</title>
</head>
<body onload = myload()>
<script language="javascript">
function myload()
{
myActiveX.Execute( "0.9003", "http://192.168.3.167/");
}
</script>
<center>
<OBJECT ID="myActiveX" WIDTH=32 HEIGHT=32
CLASSID="CLSID:40CF48AF-E75D-4B5E-97A7-A37D1F9110F0"
CODEBASE="http://192.168.3.167/download/webdown.cab">
</OBJECT>
把 inf 和ocx 打包成 cab,然后用 singcode 对 .cab文件签名,最后放在web服务器上。
打开网页时提示安装并运行,但是页面出错。
感觉控件根本没有下载。ocx 在本机注册、运行正常,htm页面在本地打开正常。
链接 http://192.168.3.167/download/webdown.cab 可以下到webdown.cab
谢谢!附1(inf文件)[version]
signature="$CHINA$"
AdvancedINF=2.0[Add.Code]
webdown.ocx=webdown.ocx
[WebOffice.ocx]
file-win32-x86=thiscab
clsid={40CF48AF-E75D-4B5E-97A7-A37D1F9110F0}
FileVersion=1,0,0,1
RegisterServer=yes附2(htm页面):
<html>
<head>
<title>OBS-SNMP-MANAGER</title>
</head>
<body onload = myload()>
<script language="javascript">
function myload()
{
myActiveX.Execute( "0.9003", "http://192.168.3.167/");
}
</script>
<center>
<OBJECT ID="myActiveX" WIDTH=32 HEIGHT=32
CLASSID="CLSID:40CF48AF-E75D-4B5E-97A7-A37D1F9110F0"
CODEBASE="http://192.168.3.167/download/webdown.cab">
</OBJECT>
inf文件:
[Version]
signture="$北京许继$"
AdvancedINF=1.1
[Add.Code]
AVWebClient.ocx = AVWebClient.ocx
MFC42.dll = MFC42.dll
VisionSpecific.dll = VisionSpecific.dll
AVMFCExtend.dll = AVMFCExtend.dll
AVImage.dll = AVImage.dll
AVDataView.dll = AVDataView.dll
AVKernel.dll = AVKernel.dll
AVVariant.dll = AVVariant.dll
AVDAProcC.dll = AVDAProcC.dll
AVAtom.dll = AVAtom.dll
AVInfoKernel.dll = AVInfoKernel.dll
[AVWebClient.ocx]
file-win32-x86=thiscab
FileVersion=1,0,0,1
RegisterServer=yes
[MFC42.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1
[VisionSpecific.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1
[AVMFCExtend.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1
[AVImage.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1
[AVDataView.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1
[AVKernel.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1
[AVVariant.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1
[AVDAProcC.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1
[AVAtom.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1
[AVInfoKernel.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,1批处理文件:
CABARC N AVWebClient.cab AVWebClient.ocx MFC42.dll VisionSpecific.dll AVMFCExtend.dll AVImage.dll AVDataView.dll AVKernel.dll AVVariant.dll AVDAProcC.dll AVAtom.dll AVInfoKernel.dll AVWebClient.inf
我不知道是哪里的错误,是不是我的 inf 文件写错了?还是打包的过程没搞好?ocx 文件本身是没问题的,只要用 regsvr32 注册后就好用。
但是如果本地没有,就无法从Web服务器上得到。
我现在作了一个.ocx的控件,也涉及到在网页上下载安装的问题!请指点一下?
*****************************???******************************
[Add.Code]
webdown.ocx=webdown.ocx[WebOffice.ocx]
file-win32-x86=thiscab
clsid={40CF48AF-E75D-4B5E-97A7-A37D1F9110F0}
FileVersion=1,0,0,1
RegisterServer=yes2。怎么做的压缩包?
http://community.csdn.net/Expert/topic/3337/3337391.xml?temp=.4953424
大概步骤是:
1. cer ===> spc (在dos窗口运行 makecert、cert2spc )
2. inf + ocx ====> cab (在dos窗口运行iexpress)
3. 用 signcode 对 cab 文件签名 (signcode可以从装有.net的机器得到)具体步骤可以查一下 http://www.ccw.com.cn/applic/prog/htm2003/20031219_091RQ.asp在论坛里搜索一下 , 可以得到一些有用的帖子。
呵呵,这回人丢大了。把 WebOffice.ocx 改成 webdown.ocx ,一切都 ok 了 !因为inf、htm都是从网上copy过来的,连ActiveX源码的工程都是从网上得到的,
改的地方太多,漏了一处。而且我是第一次写ActiveX控件,嘿嘿,让大家笑话了 :)多谢!!
方便后来人查阅 :)