要在IE中自动下载更新ocx,至少需要两个条件:
1、IE的安全级别设置允许下载
2、要更新的文件没有运行,不可能覆盖一个正在运行的文件的
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————
       

解决方案 »

  1.   

    要想保证自动下载,一定要注意以下方面的一致:例如OCX控件的版本号为:1,0,10,0
    那么inf中的版本号一定也要1,0,10,0
    再就是调用OCX的网页一定要如下写:
    <OBJECT
      classid="clsid:XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX"
      codebase="http://xxxxxx/aaaa.cab#version=1,0,10,0"
      width=215
      height=50
      align=center
      hspace=0
      vspace=0
    >
      

  2.   

    注意:千万不要把版本号中的“逗号[,]”写成“句点[.]”,我可是在这吃了苦头的。
    网页里的版本号要自己手工加入的。
    我上面举例是没有INF的情况。
    如果使用INF就没必要写版本号了。
      

  3.   

    To vjun:
      我现在的问题是:第一次它能自动下载;但以后即使我的ocx的版本改变了,但IE中还是运行的是旧版本的ocx,并且下载到XXX\Downloaded Program Files目录的ocx控件版本没有改变。
      我现在由于此ocx控件下载时要同时下载一些DLL及其它一些ocx控件(注:这些ocx控件连第一次也没有下载成功),我的网页如下(注:在inf后面加上了版本号):
    <HTML>
    <H1> Delphi 5 ActiveX Test Page </H1><p>
    You should see your Delphi 5 forms or controls embedded in the form below.
    <HR><center><P>
    <OBJECT
      classid="clsid:88B46A9A-9E7F-4448-BD55-1CA2BE7348EA"
      codebase="http://132.147.161.73/WebDir/axGDEntry.inf#version=1,0,23,23"
      width=570
      height=56
      align=center
      hspace=0
      vspace=0
    >
    </OBJECT>
    </HTML>********************
    我的Inf文件如下:;Delphi-generated INF file for axGDEntry.ocx
    [Add.Code]
    axGDEntry.ocx=axGDEntry.ocx
    vcl50.bpl=vcl50.bpl
    borlndmm.dll=borlndmm.dll
    dclocx50.bpl=dclocx50.bpl
    Parm.dll=Parm.dll
    vclmid50.bpl=vclmid50.bpl
    vcldb50.bpl=vcldb50.bpl
    SysLib.bpl=SysLib.bpl
    axGDApplicationLib.bpl=axGDApplicationLib.bpl
    axGdClaimLib.bpl=axGdClaimLib.bpl
    axGdEdrLib.bpl=axGdEdrLib.bpl
    axRecvPayLib.bpl=axRecvPayLib.bpl
    axSzPrintLib.bpl=axSzPrintLib.bpl
    axTDApplicationLib.bpl=axTDApplicationLib.bpl
    axTdCXLib.bpl=axTdCXLib.bpl
    axTdEdrLib.bpl=axTdEdrLib.bpl
    axCommonLib.bpl=axCommonLib.bpl
    axLogin.ocx=axLogin.ocx
    axTdRegSubPlc.ocx=axTdRegSubPlc.ocx[axGDEntry.ocx]
    file=http://132.147.161.73/WebDir/axGDEntry.ocx
    clsid={88B46A9A-9E7F-4448-BD55-1CA2BE7348EA}
    FileVersion=1,0,33,36
    RegisterServer=yes
    DestDir=11[vcl50.bpl]
    file=http://132.147.161.73/WebDir/vcl50.bpl
    FileVersion=5,0,6,18
    RegisterServer=yes
    DestDir=11[borlndmm.dll]
    file=http://132.147.161.73/WebDir/borlndmm.dll
    FileVersion=5,0,6,18
    RegisterServer=yes
    DestDir=11[dclocx50.bpl]
    file=http://132.147.161.73/WebDir/dclocx50.bpl
    FileVersion=5,0,6,18
    RegisterServer=yes
    DestDir=11[Parm.dll]
    file=http://132.147.161.73/WebDir/Parm.dll
    FileVersion=1,0,1,14
    RegisterServer=yes
    DestDir=11[vclmid50.bpl]
    file=http://132.147.161.73/WebDir/vclmid50.bpl
    FileVersion=5,0,6,18
    RegisterServer=yes
    DestDir=11[vcldb50.bpl]
    file=http://132.147.161.73/WebDir/vcldb50.bpl
    FileVersion=5,0,6,18
    RegisterServer=yes
    DestDir=11[SysLib.bpl]
    file=http://132.147.161.73/WebDir/SysLib.bpl
    FileVersion=1,0,0,0
    RegisterServer=yes
    DestDir=11[axGDApplicationLib.bpl]
    file=http://132.147.161.73/WebDir/axGDApplicationLib.bpl
    FileVersion=1,0,0,0
    RegisterServer=yes
    DestDir=11[axGdClaimLib.bpl]
    file=http://132.147.161.73/WebDir/axGdClaimLib.bpl
    FileVersion=1,0,0,0
    RegisterServer=yes
    DestDir=11[axGdEdrLib.bpl]
    file=http://132.147.161.73/WebDir/axGdEdrLib.bpl
    FileVersion=1,0,0,0
    RegisterServer=yes
    DestDir=11[axRecvPayLib.bpl]
    file=http://132.147.161.73/WebDir/axRecvPayLib.bpl
    FileVersion=1,0,0,0
    RegisterServer=yes
    DestDir=11[axSzPrintLib.bpl]
    file=http://132.147.161.73/WebDir/axSzPrintLib.bpl
    FileVersion=1,0,0,0
    RegisterServer=yes
    DestDir=11[axTDApplicationLib.bpl]
    file=http://132.147.161.73/WebDir/axTDApplicationLib.bpl
    FileVersion=1,0,0,0
    RegisterServer=yes
    DestDir=11[axTdCXLib.bpl]
    file=http://132.147.161.73/WebDir/axTdCXLib.bpl
    FileVersion=1,0,0,0
    RegisterServer=yes
    DestDir=11[axTdEdrLib.bpl]
    file=http://132.147.161.73/WebDir/axTdEdrLib.bpl
    FileVersion=1,0,0,0
    RegisterServer=yes
    DestDir=11[axCommonLib.bpl]
    file=http://132.147.161.73/WebDir/axCommonLib.bpl
    FileVersion=1,0,0,0
    DestDir=11
    RegisterServer=yes
    DestDir=11[axLogin.ocx]
    file=http://132.147.161.73/WebDir/axLogin.ocx
    clsid={88B46A9B-9E7F-4448-BD55-1CA2BE7348EA}
    FileVersion=1,0,226,263
    RegisterServer=yes
    DestDir=11[axTdRegSubPlc.ocx]
    file=http://132.147.161.73/WebDir/axTdRegSubPlc.ocx
    clsid={88B46A9C-9E7F-4448-BD55-1CA2BE7348EA}
    FileVersion=1,0,51,54
    RegisterServer=yes
    DestDir=11拜托你看一下,帮我指错误,谢谢了!
      

  4.   

    是不是因为下面这两个版本号不一致呢?codebase="http://132.147.161.73/WebDir/axGDEntry.inf#version=1,0,23,23"[axGDEntry.ocx]
    file=http://132.147.161.73/WebDir/axGDEntry.ocx
    clsid={88B46A9A-9E7F-4448-BD55-1CA2BE7348EA}
    FileVersion=1,0,33,36
    RegisterServer=yes
    DestDir=11
      

  5.   

    是不是因为下面这两个版本号不一致呢?codebase="http://132.147.161.73/WebDir/axGDEntry.inf#version=1,0,23,23"[axGDEntry.ocx]
    file=http://132.147.161.73/WebDir/axGDEntry.ocx
    clsid={88B46A9A-9E7F-4448-BD55-1CA2BE7348EA}
    FileVersion=1,0,33,36
    RegisterServer=yes
    DestDir=11
      

  6.   

    在你的Project Options...(OCX的工程)中、INF文件中和HTM文件中提高版本号。
      

  7.   

    bpl文件恐怕不能自动下载吧!?ocx的下载是用到才会下载,你在html中只指定了一个ocx,当然就下载一个了,它是到inf中去找安装下载信息,而不是将inf中的所有文件都下载。
      

  8.   

    bpl文件是可以自动下载的,不过不知道是否能自动更新
      

  9.   

    vjun(峻) 的说法是不对的.
    INF中指定的所有文件都可能被下载.否则我们为什么还要用INF呢?
    不过,IE在下载文件时会比较版本号.如果在机器上已经有了一个同名的文件,并且版本号不比你在INF中指定的文件的版本号低,IE就不会去下载它了.
      

  10.   

    简单,你把以前下载的控件删掉,他自动就可以下载了!路径:系统目录(WINDOWS OR WINNT)/Downloaded Program Files/