废了很大劲,查了很多资料,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>

解决方案 »

  1.   

    你的webdown.ocx的实现包含其它模块(可能是你自己的,也可能是开发环境的),只要客户端没有这些模块,就会下载失败。以下是我的成功实例。
    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
      

  2.   

    AutopVision(阳光) :但是第二次打开页面的时候还是提示“安装并运行控件”,说明根本就没有安装到本地啊,
    我不知道是哪里的错误,是不是我的 inf 文件写错了?还是打包的过程没搞好?ocx 文件本身是没问题的,只要用 regsvr32 注册后就好用。
    但是如果本地没有,就无法从Web服务器上得到。
      

  3.   

    楼上大哥,能不能给我说说怎么作cer、spc 、inf、cab 这些文件格式。
    我现在作了一个.ocx的控件,也涉及到在网页上下载安装的问题!请指点一下?
      

  4.   

    你说说你的ocx运行都依赖那些模块,如果用了MFC,则包含MFC42.dll(Release版本),如果是Debug版本,那就超级麻烦了,因为很多的mfc*d.dll都得在客户端有,否则安装失败.估计你在测试的是Debug版本.如果为了节省时间,可以在客户端装上VC测试你的Debug版本应用问题,以后再专门测试Release版.
      

  5.   

    1。WebOffice.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。怎么做的压缩包?
      

  6.   

    当然没问题了,给你两个链接,自己看看。http://www.ccw.com.cn/applic/prog/htm2003/20031219_091RQ.asp
    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在论坛里搜索一下 , 可以得到一些有用的帖子。
      

  7.   

    另外你的inf文件缺少对webdown.ocx的描述
      

  8.   

    AutopVision(阳光) :
    呵呵,这回人丢大了。把 WebOffice.ocx 改成 webdown.ocx ,一切都 ok 了 !因为inf、htm都是从网上copy过来的,连ActiveX源码的工程都是从网上得到的,
    改的地方太多,漏了一处。而且我是第一次写ActiveX控件,嘿嘿,让大家笑话了 :)多谢!!
      

  9.   

    woaidouya() :有问题给我留言。我明天有空的话就总结一下我发的两个帖子
    方便后来人查阅 :)