使用Cab包部署ActiveX控件

ActiveX控件打包成Cab置于网页中自动下载安装 [背景]        做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必须进行本地的注册,也就是说用户得首先要把该ActiveX控件(test.ocx)放在本机的%system%/system32下,然后运行DOS工具里面运行regsvr32 test.ocx命令进行注册。但如果真是这么去做的话,那么代表着你处于危险之中了,因为您是 阅读详情

这是一种最常见的部署ActiveX控件的方式。在MSDN –> Vsiual Studio文档 –> Visual C++文档 –> 参考信息 –> 库参考信息 –> MFC –> Concepts –> MFC Internet Programming Task –> Creating Signed CAB Files For MFC –> Creating a CAB File 中有详细描述。

简单的来说就是下载CabSDK,里面有cabarc等工具,然后创建INF文件,然后用cabarc创建cab文件。最后对cab签名。

1、CabSDK可以在MSDN下载。

2、INF文件的参数和结构 在MSDN –> Web开发 –> Internet Explorer Development –> Content Extenstions –> Content and Component Delivery –> Internet Component Download –> Overviews/Tutorials –> About INF File Architecture 和 Using INF Files中有很详细的描述。

麻烦的是,INF中的目标位置只能是%windir%或者是%windir%/system。不可能是其他的目录,而且加入其它的操作也是一件相对比较复杂的事情。

好在有一个Setup Hooks的机制可以插入执行命令。可以执行任何命令,包括bat,这样就可以把所有的安装操作都写成bat。美中不足的是,安装的时候会有黑色的DOS窗口弹出来,怎么尝试都不能隐藏掉。所以我干脆写了一个Windows小程序,这个小程序是不显示自己的视窗的,同时根据传入的参数,在后台打开一个进程执行bat文件。配置如下:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Setup Hooks]
hook1=hook1
[hook1]
run=%EXTRACT_DIR%/shell.exe %EXTRACT_DIR%/setup.bat %EXTRACT_DIR%

%EXTRACT_DIR%是Cab临时解压目录,shell.exe是我写的隐藏窗体的后台进程启动外壳。setup.bat是安装控件的脚本,为了让脚本能够得到解压的目录,把%EXTRACT_DIR%作为参数传递进去。脚本里面就可以做各种通用操作了。调试的时候可以用这种命令
run=%EXTRACT_DIR%/shell.exe %EXTRACT_DIR%/setup.bat %EXTRACT_DIR% > c:/debug.txt

 

3、接下来就是使用cabarc命令创建cab文件和签名。我喜欢使用批处理命令,因为cab里面文件较多,写在批处理命令里面很不方便。所以我一般都把需要打包的文件写入filelist,然后把打包命令写成批处理文件。比如

打包批处理 build.bat
set PATH=E:/mssdk/mscabsdk/BIN;%PATH%
cabarc N Release/MSF.cab @cabfilelist.txt
signcode -v view.pvk -spc view.spc Release/sel.CAB

cabfilelist.txt里面就直接列出需要打包的文件即可,一行一个文件。包括依赖的库文件,inf文件,安装脚本和执行外壳shell.exe。这是我其中一个项目的文件:
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.CRT/msvcm90.dll
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.CRT/msvcp90.dll
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.CRT/msvcr90.dll
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.MFC/Microsoft.VC90.MFC.manifest
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.MFC/mfc90.dll
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.MFC/mfc90u.dll
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.MFC/mfcm90.dll
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.MFC/mfcm90u.dll
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.MFCLOC/Microsoft.VC90.MFCLOC.manifest
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.MFCLOC/MFC90CHS.dll
E:/MicrosoftVisualStudio9/VC/redist/x86/Microsoft.VC90.MFCLOC/MFC90ENU.dll
sel.inf
setup.bat
../release/sel.ocx
../release/shell.exe

没有经过数字证书签名的控件是会被安全拦截的。所以签名十分必要。打包脚本的最后一步就是签名。view.pvk和view.spc就是我自己生成的证书。如何生成证书和安装证书请看我另外一篇文章。

VS2012下制作ActiveX控件并添加到网页 为了节省时间,大部分资源取自http://www.cnblogs.com/li-peng/p/3455247.html,感谢作者。 流程概览 1.创建ActiveX控件——按钮 2.定义一个接口,并在控件中实现 3.部署安装 4.CAB打包 5.添加到网页中进行测试 一. 创建ActiveX控件——按钮 1.新建一个Window窗体控件库 阅读详情

相关推荐

cabsdk工具精通:ActiveX控件的打包与部署

ActiveX技术是一种微软提出的技术,最初用于开发可以在Windows环境下,通过Internet Explorer浏览器或其他支持ActiveX的软件使用的软件组件。这些组件可以完成从简单的动画到复杂的电子商务交易等各种任务。它允许开发者封装小型的程序,通过浏览器下载执行,实现丰富交互的网页内容。在互联网初期,ActiveX控件由于其强大的交互功能,在许多场景中得到了广泛应用。

weixin_42591413的博客 927

ActiveX 控件安装方法(.cab)

C:\WINDOWS\system32 目录下 regsvr32.exe 安装.cab文件, 1、解压.cab文件 2、cmd 命令:regsvr32 E:\klx\wordctrl\TESTWO~1.OCX

我的IT之旅 3353

win10下OCX控件打CAB包web页面使用教程(亲测可用)

win10下OCX控件打CAB包web页面使,以及解决IE浏览器组织ActiveX控件加载的问题,检查控件是否注册成功;

文件监控与cab压缩包制作 cabarc语法

File Share文件夹备份策略及监控机制(2) 共享文件夹的监控: 如果经常出现重要文件丢失情况,我们需要弄清楚,到底谁删除了文件,以追究责任,这就涉及到了文件的监控情形。 通常涉及到操作是恶意删除或修改文件,造成文件丢失或异常。 监控的设置如下:

firebird151的专栏 1945

【STM32-DSP库的使用】基于Keil5 + STM32CubeMX + CMSIS-DSP 手动添加、库添加方式

CMSIS-DSP库在工程中应用遇到的所有问题进行归纳终结

洋洋的博客 1万+

P+F--r2000激光雷达slam技术实现

P+F--r2000激光雷达slam技术实现

majingming123的博客 1668

从网页上下载控件时制作CAB包的方法

    Internet软件分发单位是“软件包”,它由包含.INF文件或软件分发.OSD文件(或两者都包括)的.CAB文件所组成。一个分发单位也可以包含软件组件,如 ActiveX 控件(.OCX)、.DLL文件、.EXE文件、Java类文件或小程序。当Web页上OBJECT元素的CODEBASE特性引用包含.INF文件的.CAB文件时,Internet Explorer 3.0或更新的版本将自动

my life 1764

手把手拆解DGX GB200 NVL72:1个机柜如何塞进72块GPU?详解NVLink Switch铜缆背板设计

本文深度解析英伟达DGX GB200 NVL72系统如何通过NVLink Switch铜缆背板设计,在标准42U机柜中集成72块B200 GPU,实现1800GB/s的超高带宽。文章详细介绍了模块化架构、铜缆互连技术、液冷散热方案和高密度供电系统等核心创新,为AI算力需求提供突破性解决方案。

red88的博客 1590

Win10系统怎么安装cab文件?

Cab文件是属于Windows的压缩格式,并且很多微软的更新补丁都是这种格式,但这种格式的文件是无法直接进行安装的,因此有不少用户在下载完此格式的补丁之后就不清楚如何使用,那么下面就和我一起来看看Win10安装cab文件的方法吧。...

xitongzhijia_abc的博客 1万+

Habitat-baselines v0.1.7防踩坑手把手带你跑通(全网唯一)

Habitat-baselines v0.1.7防踩坑手把手带你跑通(全网唯一)

shannanshouyin的博客 1276

TS808效果器制作教程

TS808效果器制作教程 可以在立创商城购买到大部分的电阻电容和IC,音频接口,踩钉,电位器和电源接口可以去某宝看看都买得到的。链接https//pan.baidu.com/s/1QId1eIE3fJ2u5NLBSISvGA。安装过程过于繁琐,把所有元器件按照图纸焊接完成就可以调试了,祝你们成功!这是TS808经典效果器制作过程的记录。IC是JRC4558。...

qq_18948149的博客 3427

安装Cab升级文件的6个方法

Windows更新并不总是工作正常,有时会出现问题,无法正常更新,这时,可以尝试修复它。修复Windows更新常用的一个方法是是手动安装更新,可以使用任何浏览器从windows更新目录中**更新,这些更新文件一般是用* .msu文件的形式提供,但是也有更新文件提供的是* .cab文件,这些文件就不是那么容易安装了。 本文目录 手动安装Cab文件 使用DISM-Gui快速安装cab文件 一次安装多个cab文件 ...

子曰小玖的博客 7万+

【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)和CA(匀加速),滤波使用EKF。附完整代码

CV模型:状态包含位置、速度和零加速度(9维状态),状态转移矩阵忽略加速度项CA模型:完整包含位置、速度和加速度(9维状态),状态转移矩阵包含二次项过程噪声矩阵Q分别根据两种模型的运动特性推导。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 561

<实用>使用Cab包部署ActiveX控件

这是一种最常见的部署ActiveX控件的方式。在MSDN –> Vsiual Studio文档 –> Visual C++文档 –> 参考信息 –> 库参考信息 –> MFC –> Concepts –> MFC Internet Programming Task –> Creating Signed CAB Files For MFC –> Creating a CAB File 中有详细描述。

第7章 1134

AIO-1126-JD4(RV1126)蓝牙通讯(BLE)

AIO-1126-JD4采用了正基科技推出的一款集成WiFi、蓝牙功能的模组AP6236,支持高速(HS)功能的蓝牙 4.0,集成了 1.5 类功率放大器(PA),并支持低功耗蓝牙(BLE)。提到正基就不得不提下博通。博通和正基是芯片技术与模块制造方面的合作关系,正基科技是中国台湾的公司,在无线通信模块领域有一定的市场份额,博通则是全球领先的有线和无线通信半导体公司。正基把包含博通关键IP的核心芯片和自家的射频部分等封装在一起,即SIP(System In Package)。

w1820020635的博客 1123

S7-1200PLC与昆仑通态触摸屏以太网通信的具体方法和步骤(图文)

S7-1200PLC与昆仑通态触摸屏以太网通信的具体方法和步骤(图文)

Robot_PLC_HMI_Automation 1万+

用Activex控件(cab)自动部署软件:Activex开发和发布过程与总结。

引言就不写了,直接讲过程,希望对大家有帮助。 ----------------------------------------------------------------------------------------------------------------- 开发环境:WIN7 VS2010 目的:通过IE,自动部署软件。 总的过程:1.制作好要部署软件的安装包,2.创建一个

pvlking的专栏 2280

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C#制作ActiveX控件及部署升级(摘自网络)

使用C#开发ActiveX控件 控件开发、制作CAB包、签名、部署 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力。通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言开发ActiveX控件。 ...

weixin_30652271的博客 153

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VS2008 ACtivex 制作CAB带 Vcredist_x86.exe 方案

自己写的 OCX或 ACTIVEX需要注册,如果是VS05或VS08开发的,还需要安装相应 的发行包才行 比如;08就需要安装 vcredist08.exe(08); 这个在微软上找或自己的VS安装包中也可以找到 来说说关键的要点;用CAB 需要把我们的开发的OCX和相关DLL打到CAB,同时还要确保客户机上安装 vcredist.exe否则,即使控件安装上了也使用不了的 CAB工

595

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C#开发ActiveX控件及制作CAB包

一个项目要用到ActiveX控件,参照网上众多的例子,ActiveX控件倒是很容易就搞出来了; 然后做了一个【安装项目】,倒是可以使用,只不过需要在客户端手动点击安装,下一步,下一步…觉得不是很爽; 又试了试【CAB项目】,好像没人用VS2008来做,费了点功夫,终于找到解决办法。 特将此经验与大家分享。 开发工具:Visual Studio 2008 .NET版本:2.0 开发语...

weixin_34214500的博客 75

C# ActiveX控件

1.建立winform用户控件项目 2.在AssemblyInfo.cs中using System.Security,并加入语句[assembly : AllowPartiallyTrustedCallers()],用处是执行安全声明,让控件使用赋予的权限 3.在winform控件类,using System.Runtime.InteropServices,并为类添加Guid. 4.修改项目属性-

一览众山小 538

一步一步 在线发布 ActiveX

     先准备必备工具: 生成证书工具, 打包工具 , 签证工具装了 platform sdk 就已经有前2种了, 再到 www.ca365.com上下载一个 SIGNCODE.EXE 签证用的.1. 用atl写个activex,工程命为 activextest 插入Composite Control, 发给按钮,双击按钮,在函数种输入如下测试代码::MessageBox(NULL,

tabbycat的专栏 504

整理:C#写ActiveX, 从代码到打包到签名到发布的示例

对于不懂C++和VB的我, 在工作上却遇到需要重写旧ActiveX控件的任务. 好在客户机都是Windows PC, 基本上都有.net framework 2.0, 勉强用C#实现可以满足需求 所以我参考了不少前辈在网上分享的示例, 在.net framework 2.0的基础上用C#实现ActiveX小控件. 一波三折, 好不容易测试成功, 所以在此做一次简单的操作整理. 1....

weixin_30275415的博客 195
上一篇: Windows X64上强制用x86模式运行c#程序
下一篇: 生成自己的数字证书
blueboy2000
博客等级 码龄25年 12粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值