你用VCTOOLS里面那个ACTIVEX TEST CONTAINER看一下你的OCX是否已经被IE注册了。这个和是OCX文件还是CAB文件无关。

解决方案 »

  1.   

    请问Redspider:
    是否是在客户端计算机端注册?
    怎样才能被客户端IE注册呢?
      

  2.   

    IE如果发现本机注册表中没有所指定ID的控件,就会先按照CodeBase选项下载所指定的文件,
    如果是OCX就直接调用其导出函数DllRegisterServer,如果是CAB会自己先解开的,然后还是
    调用导出函数DllRegisterServer。也就是说,所谓的注册一个控件,只是调用一下该控件所
    导出的函数DllRegisterServer。用MFC或者ATL生成的ACTIVEX控件都会自动生成这个函数的,
    应该不会有问题的。
      

  3.   

    我还是不懂。
    <object ID="UserControl1" CLASSID="clsid:9B15D2AF-1DE2-11D4-9806-000021E51E5D"
    CODEBASE="ocx/printbm.cab#version=1,0,0,20" width="461" height="304">
      <param name="_ExtentX" value="12197">
      <param name="_ExtentY" value="8043">
    </object>
    我这样写有用吗?IE会注册吗?
      

  4.   

    写法没问题。不过因为你用的是CAB文件,里面应当有个INF文件来指明IE应作何操作。能不能把你的问题说清楚一点,比如你的控件是如何生成的。
      

  5.   

    到下列站点看看(HOWTO: Find More Information About Why Code Download Failed):http://support.microsoft.com/support/kb/articles/Q252/9/37.ASP最终ACTIVEX组件都将放在“windows\Downloaded Program Files\”,看看你的组件是否有被正确的注册。上http://search.microsoft.com/去SEARCH一下你的问题,也许有帮助
      

  6.   

    1。我是用vb生成的ocx,并且已在本地注册了,
    2。用frontpage在iis-server上写了一个html:
    <object ID="UserControl1" CLASSID="clsid:9B15D2AF-1DE2-11D4-9806-000021E51E5D"
    CODEBASE="ocx/printbm.cab#version=1,0,0,20" width="461" height="304">
      <param name="_ExtentX" value="12197">
      <param name="_ExtentY" value="8043">
    </object>
    3。用户也可以用了(用户的IE会自动下载)。
    我的问题是:用户以后每次浏览时,用户的IE都要自动下载一次(时间很长)。
    如何让用户端IE第二次浏览不用再下载这个ocx?
      

  7.   

    你是不是在VB的环境下设置了版本自动增加,因为你的版本增加了,所以IE会下载新版本!
    不晓得是不是这个原因!你可以试试!
      

  8.   

    谢谢xx54 和redspider ,特别是xx54 ,给了我很好的提示,各给25分吧。
    其实只要在html中删除版本号。
      

  9.   

    生成的CAB文件下载到客户端时也需要谁吗?