本文来源:http://www.cnblogs.com/yjmyzz/archive/2009/12/17/1626506.html
1.为什么要用ActiveX?
ActiveX技术虽然是一项古老的技术,但是却有着广泛的应用,支付宝的密码输入控件,各大银行的密码输入控件,网页聊天室中的截屏功能,网页播放器中的p2p播放...甚至Flash,Silverlight等等,在IE中都表现为ActiveX。
2.用js检测activex是否可用
<object id='x' name='x' classid='clsid:82AB2103-26BC-4999-8DDE-DF1A647D96E5'></object>
<script type="text/javascript">
try{
var x = document.getElementById('x');
if (x.Caption==undefined){
if (confirm('您的机器上未安装截图所需的ActiveX插件!需要安装吗?')){
window.open('http://www.youname.com/setup.exe')
};
}
}
catch(e){
}
</script>
注:用delphi开发出来的activeX,默认肯定是有Caption属性的,如果检测到Caption属性未定义,表明未安装控件,询问用户后,跳到下载安装文件。其它工具开发出来的ActiveX也可用类似思路检测。
2.下载安装文件的处理
activex的安装其实也就是调用regsvr32命令对ocx进行注册而已,所以基本上安装就是一个copy & run的过程,完全可以用winrar搞定。
winrar能将文件打包成exe格式的自解压文件,并且还能在解压前或解压后执行一些命令,甚至还能在"开始-->程序"中生成快捷方式,这些足够我们做一个安装程序了。
(1)先写几个批处理,用于自动注册或反注册,以及删除功能
install.bat 参考内容如下:(这里假定程序安装/解压到c:\capture目录下)
regsvr32 c:\capture\QQCaptureActiveX.ocx -s
uninstall.bat 参考内容:
regsvr32 c:\capture\QQCaptureActiveX.ocx /u
delete.bat 参考内容:
regsvr32 c:\capture\QQCaptureActiveX.ocx /u -s
del c:\capture\CameraDll.dll
del c:\capture\QQCaptureActiveX.ocx
del c:\capture\install.bat
del c:\capture\uninstall.bat
del c:\capture\delete.bat
rd c:\capture
(2)开始用WinRar制作安装程序