熟悉ActiveX控件的高手劳驾看看这个问题?(新问题) (200分)

  • 主题发起人 主题发起人 云中青松
  • 开始时间 开始时间

云中青松

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]如何对系统发布中所用到ActiveX控件,第一次运行时不需要IE提示是否下载控件,避免麻烦的修改IE安全级别,打开网页就可以运行了?
 
regsrv32 xxx.ocx
 
需要数字签名,要到相应的数字认证中心购买。
 
转帖

ActiveForm发布全攻略
先说说程序的开发,如果是从一般应用程序移植而来,注意所有的窗体(除了主窗体)都要动态创建,工程的选项里面是没有Auto-Create Forms的选项给你的。还有,很重要的就是要实现IObjectSafety接口,其实很简单,加上两句话就可以了(for BCB,摘自Borland新闻组borland.public.cppbuilder.activex,Delphi的嘛,对不起,不知道):
Project->Web Deployment Options 打开设置选项卡。第一页,设置路径,这里根据实际情况填了,注意别填错了哦。下面是我的填法(我的IIS根目录是C:/Inetpub/wwwroot/,机子IP是192.168.0.88):
Target Dir: C:/Inetpub/wwwroot/
Target URl: http://192.168.0.88/
HTML Dir: C:/Inetpub/wwwroot/

接着是是一些可选项,一般都全部选上。第二页,包设置,如果你编译的时候把所有的包都编译进ActiveForm了,这里是不用设的,最好也是这样,要设的话,参考第三页的设置。第三页,附加文件,一般是一些供ActiveForm调用的DLL,很多朋友的控件装不上,很大原因是没设好这里。有时C++Builder会自动将所需的DLL添加到这里,有时则没有,真是搞不懂。。。。。。没办法,还是得用。如果不知道你的程序用了什么特别的DLL,可以用一些Show Dependency工具看。本人的ActiveForm用到了客户端数据集,需要midas.dll,所以我把它给加上了,CAB选项里面最好选压缩在同一个压缩包内,不然还要设下面的路径。路径的设置和第一页一样。
好了,大功告成!Project->Web Deploy,所设目录下就生成三个文件,一个inf安装文件,一个HTML文件,还有一个CAB格式的压缩包文件(也可能有多个,看你怎么设置的了)。不用做任何修改,打开HTML文件,就可以看到ActiveFrom了。到别的机子上,IE浏览器安全级别设为最低,输入那个HTML的地址,我这里是Http://192.168.0.88/PrintFormControl.htm,先是提示安装XXX.inf文件,然后提示安装XXX.cab文件,都点确定,就可以看到ActiveForm了。什么?看不见?那就只好回头看看有什么没做对的了。。。。。

就这么多了,反正我是这样发布成功的。。。。。。不知大家把自己的ActiveForm发布好了没有。还没有?真的?试过有100遍了吗?什么?都第1000遍了?
哈哈哈哈哈哈哈。。。。。
其实。。。其实还有更好更方便更简单更标准的方法!
啊!!!!哎哟。。。好疼。。。。别。。别。。我这里不收购烂眼镜和破鼠标,啊!不要再砸了!!!我说。。。我说。。。
下载一个做CAB压缩包的软件,我用的是PowerArchiver,找到微软的代码签名软件signcode.exe,搞到一个代码签名证书,http://www.ca365.com/可以申请到免费的证书,要不,可以自己做CA给自己发证书。好了,就这三样东西。然后修改或重新做一个.inf文件,内容大致如下:
[Add.Code]
PrintControl.ocx=PrintControl.ocx
midas.dll=midas.dll

[PrintControl.ocx]
file=thiscab
clsid={AECDCD52-732D-43AA-BB90-F8B784E1A169}
RegisterServer=yes
FileVersion=1,0,43,0

[midas.dll]
file=thiscab
FileVersion=6,0,6,163

再然后把*.ocx,*.dll还有那个.inf文件做成一个CAB压缩包。用signcode.exe和证书对这个压缩包进行代码签名。再修改HTML文件,内容大致如下:
<HTML>
<H1> C++Builder 5 ActiveX Test Page </H1><p>
You should see your C++Builder 5 forms or controls embedded in the form below.
<HR><center><P>
<OBJECT
classid="clsid:AECDCD52-732D-43AA-BB90-F8B784E1A169"
codebase="http://192.168.0.88/PrintFormControl.cab"
width=100%
height=100%
align=center
hspace=0
vspace=0
>
</OBJECT>
</HTML>

好了,现在可以把IE的安全级别设为中了,ActiveForm照样下载运行。什么,不会用那几个软件?我可帮不了你了,自己看帮助吧,呵呵。

 
我做的ActiveX控件发布到Web上了,可是在别的机子上第一次运行IE是IE要提示,是否下载控件,还要修改IE的安全级别,怎样能把这个提示屏蔽掉?
 
第一次运行提示肯定是要的
否则你就可以随便格式化别人的硬盘了
 
谢谢你了碧血剑
 
TO 碧血剑能不能不用代码实现当我每做一个控件,不需用到微软的代码签名软件signcode.exe,自动生成一个代码签名控件??
 
我不知道,也许可以吧,微软一定可以,其他人就难说了
 
唉这个问题我前两天乍没有看到?
对,碧血剑的方法很好,只不过是如果是修改一下的时候,
也必须对它重新进行打包和签名;
我记得在D4还是D5的时候在web deployment options中有关于数字
签名的选项但我在D5里看了一下好像没有了,你再看一看吧,
 
好象没有说怎么实现IObjectSafety接口
 
TO 碧血剑:我在书上见到D4还是D5的时候在web deployment options中有关于数字
签名的选项但我在D5里看了一下好像没有了,你再看一看吧,
 
做个签名就可以了
 
To 碧血剑:
你能帮我解决一下这个问题吗?
http://expert.csdn.net/Expert/topic/1540/1540016.xml?temp=.4793665
 
后退
顶部