我有和C# 写了一个WINFORM  的ACTIVEX ,需要在WEB 中去发布使用。
代码我已经在开发完成,在我本地编译注册,可以正常使用。但在客户端,需要下载ACTIVEX注册 才能使用,为此我写了如下操作:1,添加安装PROJECT(ActivexSetup), 将ACTIVEX 的项目的DLL 作为输出项。
2.添加一个CAB 项目,将ActivexSetup 生成的 ActivexSetup.MSI 安装文件作为输出项。
3.添加一个cab.inf 文件 将其打到CAB中。
INF 文件内容:
[Setup   Hooks] 
hook1=hook1 [hook1] 
run=msiexec.exe   /i   %EXTRACT_DIR%\ActivexSetup.msi   /qn [Version]
Signature= "$CHICAGO$ " 
AdvancedInf=2.0如此操作后,将CAB 文件放到了WEB PROJECT 目录下, WEB 页面的引用ACTIVEX 对象处:
<object id="WinForm" classid="clsid:9E0679A1-7862-4137-BBDA-336E75FA8C08"  codebase="Cab1.CAB" height="58"></object>
但在客户端,能检测能要下载ACTIVEX ,但点击安装后还是没有安装成功, 每次进入此页面都得重装下载安装。各位大哥,帮忙看看,是我那边做的有问题。谢谢。

解决方案 »

  1.   

    ACTIVEX 是需要数字签名的,没有认证的ACTIVEX控件,IE不会安装。这是为了安全。
      

  2.   

    参考:
    http://www.diybl.com/course/3_program/c++/cppsl/2008126/97462_3.html
      

  3.   

    建义用C++
    否则客户端只有装了.NET FRAMWORK才能运行的.
      

  4.   

    都是用SIGNCODE 进行签名的, 这个工具现在都找不到下载, 微软上都找不到。 哎。 
    不知道 SIGNTOOL 是否可以, 只是不知道如何用。
      

  5.   

    FRAMEWORK 到不是问题。 所有客户端都会有的, 是内部系统。
      

  6.   

    signcode这个vs2003有带的,不用去下载。 找不到的话留个邮箱,我发给你。
      

  7.   

    数字签名已经签上了, 但我用chktrust.exe 去检测签名的时候,cab文件运行起来是未知发行商, 无法验证发行者, 这个安全警告, 这是那边还没有做对呢?
      

  8.   

    这个正常,你数字签名用到的数字证书如果不是受信任的颁发机构颁发的,就有这种情况。
    1.可以在你Server版的系统中安装证书服务,然后向它申请证书,并用申请到的证书来签名ACTIVEX控件。
    2.装完安装证书服务后它有个根证书,在客户端安装这个根证书,安装后,你的证书服务颁发的证书对于这个客户端就是受信任的了。
    3.也可以向IE默认的受信任证书颁发机构申请证书,但这个是要钱的, 如果只是局域网内使用,没有必要。
      

  9.   

    那客户端得先去申请证书啊, 我是要在我的ACTIVEX 发布中实现。 客户端只需下载ACTIVEX 就实现对其进行注册, 这个功能在NET2008和XP 系统的环境下的实现是如何来做? 
      

  10.   

    看来LZ还没明白这个过程。
    1.客户端不用去申请证书,只需安装证书服务的根证书。(如果你有钱,可以到外面买个数字证书,这步都可省去)
    2.申请证书是发布ACTIVEX前做的工作,申请到的数字证书是用来对ACTIVEX进行签名的。
      

  11.   

    嗯。 做出来了, 没有用证书, 用REGSAM 注册下DLL 就可以了。 不需要去打安装包,做证书, 那么麻烦了。 呵呵。 中午结贴, 感谢dk385 的支持。