网页加载ActiveX控件

来源:互联网 发布:老鹰淘宝店 编辑:程序博客网 时间:2024/05/17 01:56

      首先很不幸的告诉大家ActiveX控件有许多缺点,第一它不被多有浏览器兼容,目前仅支持IE内核的浏览器,当然其他浏览器比如firefox,google,世界之窗等都在努力的兼容它,也分别开发出了相应的插件,但个人感觉还是蛮麻烦的。 但又很愉快的告诉大家ActiveX控件是个好东西,web开发人员都知道,浏览器要是想跟本地计算机打交道,最直接有效的方法就是使用ocx控件,ocx的开发工具及语言有很多种,个人倾向于C++开发,体积小利于控制。

      说了这么多好像有点偏离本文的主题了,本文主要讲的是网页如何加载ocx控件,首先我们看看下面的语句。

<object classid="clsid:8A634F67-E4F6-4A32-8009-0247F8E9ADEE" id="forTestWebOcx" CODEBASE="http://www.novode.com/forTestWebOcx.cab#version=4,0,0,1" width=100% height=100%>
我来解释下着段代码classid是ocx的唯一标志跟我们的身份证号码一样,id是控件的别名,为的是方便调用其中的方法比如想使用forTestWebOcx控件的About()方法我们可以这么用

<script>

     function doAbout()

    {

          document.getElementById("forTestWebOcx").About();

    }

    doAbout();

</script>

CODEBASE:里面的内容是将forTestWebOcx打包成cab文件网络地址version后面的是cab文件的版本号。

width,height是控件的宽和高。

利用上面的方法就可以方便的使用ActiveX控件了。

    说到这里有的朋友就会问了,那ocx如何打包成cab文件呢?问这个问题的朋友想的就深一点了,制作cab文件的方法有很多种这里就不赘述了,但有一点不要忘记了,就是制作inf文件

创建一个文本文件, forTestWebOcx.inf 内容如下
 
[version]   
signature="$CHICAGO$"  
AdvancedINF=2.0

 

[Add.Code]   
forTestWebOcx.ocx=forTestWebOcx.ocx
mfc42.dll=mfc42.dll

 

[forTestWebOcx.ocx]   
file-win32-x86=thiscab   
clsid={3112C94E-FB7D-4654-96ED-7DCD7FEC08A3}
RegisterServer=yes
DestDir=11
FileVersion=1,3,1323,1

 

[mfc42.dll]
file-win32-x86=thiscab   
RegisterServer=no   
DestDir=11  
FileVersion=1,0,0,1 

 

说明一下

RegisterServer=yes问的是否要注册,ocx当然要注册了,所有用yes;

mfc42.dll是运行forTestWebOcx.ocx的动态链接库是不用注册的所以用no;
file-win32-x86是说明在32位操作系统下使用。

 

制作好cab文件后剩下的就是数字签名了,数字签名需要一张数字证书,当然这张数字证书是由浏览器信任的根证书下发的,得到一张浏览器信任的证书是需要money的,就不介绍了,当然也可以自用用一张证书随便签签名糊弄糊弄不懂的客户也是可以的,呵呵,我邪恶的笑笑。

 

如果说,我的控件不签名那怎么办呢?就不能用了嘛?

 

当然也不是,我们可以在客户端直接将ocx控件运行需要的动态链接库拷贝到system32下面,然后注册一下ocx控件,注册语句为

regsvr32 "filepath" filepath就是文件的路径。这样就成功了一半,另一半就是设置可信任站点。

可信任站点的设置方法为  工具----internet选项----安全---可信任站点----站点 将要信任的域名或者ip加入到可信任站点,然后设置可信任站点的安全级别-----允许下载未签名的ActiveX控件。

 

这样就可以使用了,愿各位朋友好运。