IE自动下载安装OCX方法

4 篇文章 0 订阅
2 篇文章 0 订阅

 【问题的提出】
BCB或VC制作的OCX,希望不用手工在客户端注册,就可以在网页里面自动下载、注册、使用。

【资料】
在MSDN上查找“Packaging ActiveX Controls”,可以找到详细的配置及步骤。

完整URL:
ms-help://MS.MSDNQTR.2003FEB.2052/activex/workshop/components/activex/packaging.htm

另一中文资料--“升级现有的 ActiveX 控件”,完整URL:
ms-help://MS.MSDNQTR.2003FEB.2052/vccore.html/_core_Upgrading_an_Existing_ActiveX_Control_to_be_Used_on_the_Internet.htm

【实现步骤】
1、从MSDN的资料库中,取得“CABinet SDK”软件包,这是一个自解压的文件,将此文件解压缩到
用户指定的目录下,该目录下有个BIN目录,就是打包工具的目录。

2、将要打包的OCX文件(后缀可以是.ocx或.dll),放到BIN下面,备用。

3、手工编写inf文件,由于测试用的ocx只有单独的一个ocx文件,没有特殊的依赖文件,所以inf
文件只包含ocx一个文件;如果要包含依赖文件,请参照MSDN资料里面的说明,补充对依赖文件的
申明。
inf文件内容如下:
[version]
    signature="$CHICAGO$"
    AdvancedINF=2.0
[Add.Code]
    eSafeDev.dll=eSafeDev.dll
    GetDevID.dll=GetDevID.dll  ← ocx依赖文件定义
[eSafeDev.dll]
    file-win32-x86=thiscab
    clsid={93E15037-E58D-44F1-9DE2-76ED9F4952A1}
    FileVersion=1,0,0,1
    RegisterServer=yes
[GetDevID.dll]                 ← ocx依赖文件详细情况
    file-win32-x86=thiscab     ← 标明依赖文件包含在这个cab里面
    FileVersion=1,0,0,1        ← 依赖文件版本号,无版本号时,此行不加


4、在命令行方式进入BIN目录,在其中执行打包命令后,此目录下生成cab文件。
命令如下:
cabarc n *.cab *.ocx *.inf *.dll

5、发布cab文件,把cab文件放在Tomcat的Webapps/ROOT/下,启动Tomcat。

6、编写HTML测试页面,加载此ocx,观察下载、安装、加载运行的过程。Enjoy it!
HTML测试页面代码如下:
<html>
<head>
<title>控件测试</title>
<meta http-equiv="目录类型" content="文本/html" charset="gb2312">
<SCRIPT language="JavaScript">
<!--

function j_pkgGetTxt(src, flag) {
    var sret = "";
    var n = src.indexOf("^" + flag);
    if (n < 0)       return sret;
    var tmp = src.substring(n + 3);
    n = tmp.indexOf("^");
    if ( n==0 ) sret = "&nbsp;";
    else
            sret = n > 0 ? tmp.substring(0, n) : tmp;
    return sret;
}


function get_Serial() {
        var sRet="";
        var rc = 0;
        var sno = "";
        
        sRet = JT_COMM.SerialNo();
        alert("调用接口返回 = " + sRet);
        
        rc = j_pkgGetTxt( sRet, "RT" );
        if ( rc!=0 ) {
                alert("取序列码失败!");
                return;        
        }
        sno = j_pkgGetTxt( sRet, "SN" );
        alert( "序列码 = " + sno );
        
        return(sRet);
}


-->
</script>

</head>
<body bgcolor="#FFFFFF" leftmargin="20" topmargin="0" marginwidth="0" marginheight="0" >
        <div id="Layer1" style="position:absolute; left:482px; top:343px; width:137px; height:145px; z-index:1">  
                  <object codebase="http://192.168.11.73:8080/JTCommon.cab" classid='clsid:2422315D-EB47-4468-B1FE-3CA848DA7DDE' id='JT_COMM' width='0' height='0' hspace=0 vspace=0>
                  </object>
        </div>
        <form name="form1" >
                  <p>简单功能测试</p>
                  <p>
                    <input type="button" name="Submit32" value=" 取序列码 " οnclick=get_Serial()>
                  </p>
        </form>
        <p>&nbsp;</p>

</body>

</html>


在IE中打开此页面后,首次加载此控件,会有一段时间的下载、安装过程,IE的状态栏会有提示,
系统自动下载、安装完成后,可以点击页面的按钮来测试控件的功能。
OCX控件安装在C:/WINDOWS/Downloaded Program Files/目录下。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值