用Activex控件(cab)自动部署软件:Activex开发和发布过程与总结。
2012-08-16 09:35
423 查看
引言就不写了,直接讲过程,希望对大家有帮助。
-----------------------------------------------------------------------------------------------------------------
开发环境:WIN7 VS2010
目的:通过IE,自动部署软件。
总的过程:1.制作好要部署软件的安装包,2.创建一个Activex控件,在控件注册函数里执行安装包,3.编写INF文件,4,把安装包,Activex控件(dll或ocx),INF文件打包成cab,5.网页通过<OBJECT>标签加载cab包。(注:打数字签名就不阐述了)
----------------------------------------------------------------------------------------------------------------
一、Activex控件的开发
1.用VS创建一个ATL项目,属性默认,直接点完成就行。
2.在控件注册函数DllRegisterServer():里执行你的安装包:(解决方案视图-》打开ALT项目名的cpp文件)
ShellExecute(NULL,_T("open"),m_sSteupFilePath,NULL,NULL,SW_SHOWNORMAL);
3.为ATL项目添加个“ALT控件”:右击项目-》添加类-》ATL控件。
4.得到CLSID:项目解决方案视图里会有个后缀会“idl”的文件,
或者
在添加ATL控件后,解决方案视图里会增加一个htm的测试网页文件,打开,里面就是需要的<OBJECT>标签源码
二、编写INF文件
文件代码如下(取掉了其他可有可无的语句):
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
Atlstudy.dll=Atlstudy.dll
STEUP.exe=STEUP.exe
[STEUP.exe]
file-win32-x86=thiscab
DestDir=11
FileVersion=1,0,0,1
[Atlstudy.dll]
file-win32-x86=thiscab
clsid={9A66B5F0-3479-463E-9F4D-333BEC742E2E}
DestDir=11
RegisterServer=yes
FileVersion=1,0,0,1
------------------------------------------
三、编写网页代码(打包cab包软件和证书签名工具可以看我发布的资源)
<OBJECT ID="Client" CLASSID="CLSID:9A66B5F0-3479-463E-9F4D-333BEC742E2E" codebase="ok.cab#version=1,0,0,1"></OBJECT>
把cab包和测试网页放在同一目录。
四、要注意的地方
1、Activex控件,INF,网页代码里的版本号书写需要一致,并且是用“,”逗号隔开的。这样控件的注册只会执行一次。
2、解释下三个版本号的作用:(按执行的先后顺序)
网页里的版本号:用来判断是否执行INF文件。(跟控件版本号做比较)
INF的版本号:用来判断是否需要重新注册控件。(跟控件版本号做比较)
控件版本号:用来判断是否替换原有控件(版本号一样不替换),注册成功后控件的版本号也就是上面两个所比较的对象。
所以:当网页的版本号跟已注册控件版本号一样时,不管你INF文件版号和控件版本号跟原来的是否更新了,都是不会再执行的。其他同理。
-----------------------------------------------------------------------------------------------------------------
开发环境:WIN7 VS2010
目的:通过IE,自动部署软件。
总的过程:1.制作好要部署软件的安装包,2.创建一个Activex控件,在控件注册函数里执行安装包,3.编写INF文件,4,把安装包,Activex控件(dll或ocx),INF文件打包成cab,5.网页通过<OBJECT>标签加载cab包。(注:打数字签名就不阐述了)
----------------------------------------------------------------------------------------------------------------
一、Activex控件的开发
1.用VS创建一个ATL项目,属性默认,直接点完成就行。
2.在控件注册函数DllRegisterServer():里执行你的安装包:(解决方案视图-》打开ALT项目名的cpp文件)
ShellExecute(NULL,_T("open"),m_sSteupFilePath,NULL,NULL,SW_SHOWNORMAL);
3.为ATL项目添加个“ALT控件”:右击项目-》添加类-》ATL控件。
4.得到CLSID:项目解决方案视图里会有个后缀会“idl”的文件,
library AtlstudyLib { importlib("stdole2.tlb"); [ uuid(9A66B5F0-3479-463E-9F4D-333BEC742E2E), //这个就是需要的CLSID control ] coclass test { [default] interface Itest; }; };
或者
在添加ATL控件后,解决方案视图里会增加一个htm的测试网页文件,打开,里面就是需要的<OBJECT>标签源码
二、编写INF文件
文件代码如下(取掉了其他可有可无的语句):
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
Atlstudy.dll=Atlstudy.dll
STEUP.exe=STEUP.exe
[STEUP.exe]
file-win32-x86=thiscab
DestDir=11
FileVersion=1,0,0,1
[Atlstudy.dll]
file-win32-x86=thiscab
clsid={9A66B5F0-3479-463E-9F4D-333BEC742E2E}
DestDir=11
RegisterServer=yes
FileVersion=1,0,0,1
------------------------------------------
三、编写网页代码(打包cab包软件和证书签名工具可以看我发布的资源)
<OBJECT ID="Client" CLASSID="CLSID:9A66B5F0-3479-463E-9F4D-333BEC742E2E" codebase="ok.cab#version=1,0,0,1"></OBJECT>
把cab包和测试网页放在同一目录。
四、要注意的地方
1、Activex控件,INF,网页代码里的版本号书写需要一致,并且是用“,”逗号隔开的。这样控件的注册只会执行一次。
2、解释下三个版本号的作用:(按执行的先后顺序)
网页里的版本号:用来判断是否执行INF文件。(跟控件版本号做比较)
INF的版本号:用来判断是否需要重新注册控件。(跟控件版本号做比较)
控件版本号:用来判断是否替换原有控件(版本号一样不替换),注册成功后控件的版本号也就是上面两个所比较的对象。
所以:当网页的版本号跟已注册控件版本号一样时,不管你INF文件版号和控件版本号跟原来的是否更新了,都是不会再执行的。其他同理。
相关文章推荐
- java web入门级开发全过程-环境搭建,开发,发布,部署,总结
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- Web发布cab文件打包的ActiveX控件总结
- 软件开发过程中的文档总结
- Visual Studio.net 2008开发ActiveX过程与总结
- 普通软件项目开发过程规范(五)—— 总结
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- 股票分析软件编程开发日记与总结,自动交易软件开发
- [activex]VC6.0开发activex ocx控件&&发布全过程
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- Web发布cab文件打包的ActiveX控件总结
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- Visual Studio 2008(c#)开发ActiveX控件及制作CAB包总结(1)
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- Visual Studio 2008(c#)开发ActiveX控件及制作CAB包总结(2)
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程