我用DELPHI写了一个关于报表打印的ActiveX的控件,用delphi菜单下的RUN--Register ActiveX生成一个OCX文件。然后用delphi菜单下的Project--web deploy
进行了WEB发布,在这一过程中生也一个HTML文件和一个INF文件。
INF文件如下:
Delphi-generated INF file for AirActiveFormProj1.ocx
[Add.Code]
AirActiveFormProj1.ocx=AirActiveFormProj1.ocx
midas.dll=midas.dll[AirActiveFormProj1.ocx]
file=./AirActiveFormProj1.ocx
clsid={5DEAAEC4-ACC2-42F3-B0DD-2567FD8FC5A5}
RegisterServer=yes
FileVersion=1,0,6,0[midas.dll]
file=./midas.dll
FileVersion=7,0,4,453由于我在这个ActiveX控件中用到了TclientDataSet控件,所以必面把MIDAS这个文件包含进去。然后我再用如下的方法把生成的这个OCX文件和MIDAS。DLL和INF文件打成一个CAB包。
  运行cmd命令进入DOS命令窗口,敲入iexpress,回车。
> 弹出一个新窗口,直接点下一步,选第三项,下一步,先添加inf 
> 再添加ocx,最后加dll,下一步,输入小于八位的文件名,选第一个。OK最后我用一个名叫CERT工具进行数字签名:
这个http://www.8421.org/download.php?id=156 ActiveForm制作与签名完全手册  
 
签名成功,然后我把文件部署到我的应用服务器上去(weblogic)运行该ActiveX的JSP页面。弹出一个安全设置警告对话框,我是狂喜,以为成功,马上点击“是”,可马上又
弹出哪个该死的“当前安全设置禁止该ActiveX运行,因此该页无法显示”,我晕,忙活了半天,结果还是一场空,没办法,设置一下IE的安全级别,刷新页面,结果出来。怎么样才
能把哪个该死的鸟框去掉,不用设置IE的安全级别就出来啦,我没辙,请各们高人看看。出错在什么地方。
我在JSP页面是这样引用的。
</head>
<body>
<center>
<OBJECT 
  name="AirActiveX"
  classid="clsid:5DEAAEC4-ACC2-42F3-B0DD-2567FD8FC5A5"
  codebase="./no_1.CAB"
  width=774
  height=456
  align=center
  hspace=0
  vspace=0
></OBJECT>其中NO_1中把INF,OCX,midas.dll打包生成的文件,最后的数字签名我也是该包签的名。在打包的过程中还生成了一个no.inf和no.sed这两个文件,我也把它放在应用服务器上啦!

解决方案 »

  1.   

    http://www.8421.org/download.php?id=156
    ActiveForm制作与签名完全手册
      

  2.   

    我的批处理的内容:
    makecert -sv "a.pvk" -n "CN=A" a.cer
    cert2spc a.cer a.spc
    cabarc -s 6144 n ActiveFormProj.cab ActiveFormProj.ocxsigncode -spc a.spc -v a.pvk ActiveFormProj.cab -a md5 -n "a" -i "www.a.com" 
    chktrust.exe ActiveFormProj.cab你参考看看。
    另外:你的IE的安全设置会不会太高?使用缺省安全设置看看?
      

  3.   

    http://www.delphibbs.com/delphibbs/dispq.asp?lid=822166也许有帮助
      

  4.   

    谢谢  Cixy(塞克斯) 我的问题正和哪个提问者是一样的问题!
      

  5.   

    那边的那个我去看了,确实是一样的,那边最后说得到了一个解决方案,不知道行不,只有4行文字的叙述,确实是有inf就不行,有高手来这里讲讲吗?
      

  6.   

    Activex 数字签名     1,制作ActivexForm,如图,暂且命名为Actfrmtest. 
      
    2,制作好ActiveForm如下:
     
       
       3,Web发布设置如图:
                
        4.设置好选项:
     
    5.发布测试网页。
     6.运行测试网页,在浏览器未安全降级情况下如图:
     
     7.下面开始数字签名:a.我把工具包放到c:盘。
    b.运行c:\cert\makecert -sv "千中元是混蛋.pvk" -n "CN=BlackDragon"  lazycat.cer
    如图
     
    弹出如下窗口,输入密码保护。
     
     
    至此,cert证书制作完毕。
    c.开始证书spc转换。
    运行  c:\cert2spc lazycat.cer lazycat.spc  如图
     d.开始数字签名。
    运行signcode (双击) 结果如图
     
     
     
    单击从文件选择(F)
     单击下一步 
    浏览,选择c:\cert\千中元是混蛋.pvk     单击下一步
     
    输入创建证书时的密码.
     
    选择加密为md5   下一步
     
    直接下一步
     下一步.
     
    时间戳地址为: http://timestamp.verisign.com/scripts/timstamp.dll
    加入时间戳注意要连接上163,或者可以出国.
     
     
    输入制作证书时的密码。
     签名完毕。8.运行测试网页
     
    运行效果如图:
     
    这样在浏览器不降级就可以下载自己制作的*.ocx控件了。
    当然,你也可以把浏览器安全降级,这样就不这么麻烦了。  :)
             我写这个并不是要分,我希望大家能帮我写个opc client
             详细请看http://delphi.mychangshu.com
             工控栏目下的工控源码下的opc server,编译时用到栏目里的opc source组件包。
                                                              赵海
                                                            2002-3-31