我用VB6.0做了个ActiveX控件,来读取客户端MAC来验证身份的。内嵌到网页上,并且做了数字签名,有的客户端可以正常下载、注册并运行正常。内嵌代码如下:<OBJECT id='getMAC1' style='DISPLAY:none' codeBase='http://XXXX/WebApplicaton1/MAC.CAB' height='31' width='31' classid='CLSID:8BDAD143-BB22-41BC-A2B0-F107BAD77A94' VIEWASTEXT>你的浏览器没有安装我公司的客户身份验证插件不能浏览本网站</OBJECT>
<input id='mac' type='hidden' name='mac'>
<SCRIPT language='javascript'>
var mac=document.Form1.getMAC1.MAC;
document.Form1.mac.value=mac;
</SCRIPT>有的客户端机子老是被上网助手拦截,按提示进行安装,但没装成功,下次打开该网页还是被提示要下载插件,我查了这种情况下客户端的机子里“C:\WINNT\Downloaded Program Files\”下没有该插件的注册信息。问题:假如在IE浏览器自解压下载注册控件失败的情况下,我在想页面上放置一个控件(MAC.CAB)的下载链接,让客户端手工下载、注册该控件,怎样实现呢?或者有什么其他更好的办法来解决这个问题,请各路老大出手!

解决方案 »

  1.   

    用install shield打包一下,他在安装时会自动注册的
      

  2.   

    用install shield打包MAC.CAB文件?
    还是打包我做MAC.ocx控件所用到或生成的文件:

    MAC.ocx
    MSWINSCK.OCX
    msstkprp.dll
    MSVBVM60.DLL
    OLEAUT32.DLL
    OLEPRO32.DLL
    ASYCFILT.DLL
    STDOLE2.TLB
    COMCAT.DLL

    这些文件?没有.exe文件怎么打包?能否给个例子??谢谢!!!!
      

  3.   

    打这些“
    MAC.ocx
    MSWINSCK.OCX
    msstkprp.dll
    MSVBVM60.DLL
    OLEAUT32.DLL
    OLEPRO32.DLL
    ASYCFILT.DLL
    STDOLE2.TLB
    COMCAT.DLL

    没有exe不能打包吗?我还没试过
      

  4.   

    或者你自己写个程序,把这些文件压缩进去,然后你程序执行的时候再把这些文件copy到指定地方(比如winnt,wint\system32等,然后再regedt32这些,然后把你的mac.ocx再regedt32一下
      

  5.   

    问题已经解决!我把控件重新做了一遍,且用了安全编程接口(IObjectSafetyTLB),做了数字签名,完善了客户端下载控件时出现问题的处理,如被拦截时的处理、死活下不了就手工下载,手工注册等等。没有什么新方法。