CharlesChen's Technical Space

简单实用是我一直在软件开发追求的目标(I Focus on. Net technology, to make the greatest efforts to enjoy the best of life.)
Not the best, only better
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

配置ActiveX控件在网页中下载安装

Posted on 2010-04-11 23:04  Charles Chen  阅读(24318)  评论(4编辑  收藏  举报

      记得曾经转载了一篇关于C#开发ActiveX控件的文章:使用C#开发ActiveX控件(zt) ,最近在项目中的使用过程中,发现不能自动下载Activex控件,这需要手动的为使用Activex的客户端注册,显然这是不适应的。

按道理说应该这样:先检查客户端浏览器是否安装了ActiveX控件,如果没有安装ActiveX,就需要先给浏览器提示下载并允许安装。否则就直接使用该ActiveX控件。我们可以使用CodeBase来满足我们的要求:下面是一个html的调用:

<object classid="clsid:636B8CE1-7512-464C-B63C-FC75BDCA21DB" codebase="Charles2008ActiveX/setup.exe#version=1,0,0,0" width="200" height="40" > </object>

 

注意里面的codeBase属性,指定了该安装文件的路径:Charles2008ActiveX/Setup.exe,版本是1.0.0.0。这是相对路径,实际上的决定路径是在当前URL地址所在的目录下的Charles2008ActiveX文件夹里的Setup.exe文件,该文件就是该ActiveX的安装文件。

这样我们就可以使用codebase属性来满足我们对ActiveX控件的要求。

      这样我们需要来说明另一个问题:怎样来对ActiveX控件打包生成.exe文件或者.cab文件?

实际上就是对开发的ActiveX控件创建一个安装程序即可。假设是C#开发的ActiveX控件的话。打包的过程实际上是和普通的winform程序打包过程是一样的。注意需要设置一下:安装的URL地址:(如下图)

这里设置为http://192.168.1.101/ActiveX,这个目录必须存在的,用来存放生成的安装文件,供客户端下载安装。

        配置完成后,生成项目就会生成两个文件,一个.exe和一个.msi文件。将生成好的exe和msi文件拷贝到网站ActiveX目录中去。

启动网站,确保访问setup.exe的目录与[安装项目]中的[安装URL]一致。一般情况下:网页会弹出提示,是否安装ActiveX控件等,如果提示了也不能安装,需要将网站添加到信任站点,并允许下载不安全和未签名的控件。使用这种方式安装,会在客户端弹出安装软件的界面。同winform安装类似。

       我们也可以把程序打包生成Cab文件,即把上面生成的.MSI文件打包生成Cab文件,有很多铺助工具如:CabARC.exe.用法可以参考其他网络资源。据说使用起来很方便也很简单。这里就不详细介绍了!

      总之我们我们可以把ActiveX打包生成我们想要的安装程序,通过codebase来指定下载activex控件的URL即可满足要求:

客户端已经安装了ActiveX控件则不用再安装,没有安装ActiveX控件则从codebase路径下下载并安装,这样也满足了客户端对控件的要求。

Best Regards,

Charles Chen