OCX打包成cab
- 格式:docx
- 大小:13.83 KB
- 文档页数:2
CAB包制作与手动安装一、CaB包制作:Cabinet Maker - Lossless Data Compression ToolMAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]source File to compress.destination File name to give compressed file. If omitted, thelast character of the source file name is replacedwith an underscore (_) and used as the destination./F directives A file with MakeCAB directives (may be repeated). Refer toMicrosoft Cabinet SDK for information on directive_file./D var=value Defines variable with specified value./L dir Location to place destination (default is current directory)./V[n] Verbosity level (1..3).C:\Users\xieeeT\Desktop\PDFEditorActiveX>makecab /f list.txt /d compressiontype=lzx /d compressionmemory=21 /d maxdisksize=1024000000 /d diskdirectorytemplate=d /d cabinetnameplate=d.cab二、IE控件cab包手动安装XP、Win7和Win8手动安装IE控件的cab包方法/步骤1一、若你是XP系统,你可以这样安装:第1步:先解压cab包(随便解压软件都行),在解压的文件中找到*.inf文件,然后右击,选择安装,此时会把解压文件拷到C:\Windows\System32\文件夹下。
浏览器插件之ActiveX开发(一)一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题。
在有特殊需求(如涉及数据安全的金融业务数据交互、需插件才能实现的与本地设备的交互等)的情况下可以酌情慎用。
浏览器插件总体可以划分为两大阵营,即IE支持的插件以及非IE支持的插件。
本来在Netscape时代,对于浏览器插件是有公用的规范的(NPAPI),一开始所有浏览器都支持该规范,包括IE。
后来出于商业原因,微软的IE不再支持NPAPI,改而自己开发了一套基于COM的ActiveX体系,但这个体系对于非IE浏览器是拒绝支持的。
所以目前的状况基本是,IE浏览器仅支持ActiveX控件,而Firefox、Chrome等浏览器只支持另一类接口(XPCOM或NPAPI)。
要想实现一个Web插件,至少需要同时考虑IE支持的AceiveX版以及非IE支持的Plugin版(Flash等插件对于IE与非IE浏览器都是不同的)。
ActiveX的开发可以用C#、VB及C++等语言。
用C++开发ActiveX既可以使用ATL,也可以使用MFC。
ATL ActiveX输出文件较小,适合网络传输,但开发复杂度稍大;而MFC ActiveX输出文件稍大(附带必要的MFC dll),但易于上手。
本文主要介绍基于MFC的ActiveX 开发。
一、创建项目及添加接口在 2008中,新建一个MFC ActiveX Control项目:点击―OK‖后将弹出如下对话框:依次点击―Next‖按钮直到―Control Settings‖标签页:由于本例子只演示仅提供函数接口不基于界面的ActiveX,故―Create control based on‖选择―(none)‖即可。
点击"Finish‖按钮,即完成了项目的创建,文件结构如下:右击项目名称,选择―Properties‖,在项目属性对话框中对―All Configurations‖进行配置。
工具介绍一、“数字证书”制作软件MakeCertmakecert.exe是一个微软出品的用来制作“数字签名”的软件,是命令行界面,利用它可以轻松地做出属于自己的个人“数字签名”,当然自己做出来的这个数字签名是不属于受信任的证书的,但这并不太影响使用^*^二、CAB压缩软件包制作工具IEXPRESS是MAKECAB.EXE的GUI界面程序,用来把程序所需文件压缩打包为CAB格式,便于传输,当然如果你的程序是一个独立的EXE文件时,可以不需要用这个工具打包,但考虑现在多数免费空间不支持EXE格式的文件上传,建议打包!类似的工具还有命令行界面的Cabarc.exe;三、数字签名软件 Signcode我们可以使用signcode.exe和自己的“数字证书”签署自己的软件,给软件加上数字签名,使其可以在网页中运行。
第一步:制作“数字证书”本次使用makecert的命令如下:makecert -sv icyfox.pvk -n "CN=冰狐浪子" -ss My -r -b 01/01/1900 -e 01/01/9999其中-sv icyfox.pvk意思是生成一个私匙文件icyfox.pvk-n "CN=冰狐浪子"其中的“冰狐浪子”就是签名中显示的证书所有人的名字,记住要改为你自己的或你想要的名字呀!-ss My指定生成后的证书保存在个人证书中-r意思是说证书是自己颁发给自己的,呵呵-b 01/01/1900指定证书的有效期起始日期,格式为月/日/年,最低为1900年-e 01/01/9999指定证书的有效期终止日期,格式同上,我想9999年你应该是活不到的^)^至于其他命令暂时用不到,我也不多做介绍啦。
在控制台命令提示状态输入上面命令(当然用批处理也可以),出现如图一:图一不需要填私匙密码吧?直接点“无”按钮就可以拉,如果你喜欢麻烦就输入密码,并记住它。
好啦!已经在目录下生成了你的私匙文件icyfox.pvk,但证书在哪里?别急,打开IE 的“Internet选项”,切换到“内容”标签,看到“证书”按钮没?点它! 出现如图二:图二看见没?图中上面那个截止日期为9999-1-1的“冰狐浪子”就是刚才自己生成的证书,把它“导出”为icyfox.cer,好啦,最重要的第一步已经完成!第二步:把要用到的程序文件打包为CAB格式格式首先建立runexe.inf文件,内容如下:[Version]Signature=$CHICAGO$[icyfox]run=%EXTRACT_DIR%\icyfox.exe[Setup Hooks]icyfox=icyfox记得要把上面的“icyfox.exe”改为你的程序名!然后,运行IEXPRESS.EXE,选中“创建新的自解压缩指令文件”,进入下一步,选中“只创建压缩文件(ActiveX安装)”,进入下一步把用到的程序包括程序调用的DLL(如果有的话)添加进列表中,千万不要忘记把“runexe.inf”也添加进来呀!点下一步出现如图三:图三按照图配置选项后,就连续点“下一步”,即可生成icyfox.CAB。
一、工具软件要在Wince安装程序,则需要制作*.cab安装包。
制作*.cab安装包,需要专门的制作工具软件,最常用的也是用得最多的是WinCE CAB Manager二、制作及安装过程第一步:先制作.inf文件要制作.cab安装包,你只要写一个.inf文件,也可以用的文本编辑工具制作,还有准备好你要安装到PPC的各个文件、程序。
第二步:生成CAB包只要在WinCE CAB Manager中打开你的INF文件,WinCE CAB Manager会根据你的这个INF文件来生成*.CAB文件。
你只需要把它保存起来就行了第四步:连接手机通过USB连接PC,运行*.ARM.CAB文件三、制作INF文件说明第一个字段[V ersion]中Provider大家可以随便改,其他两个参数就不要去碰了。
第二个字段[CEStings]CompanyName=""AppName="PPC"InstallDir=\UserData\myoa说明:CompanyName是公司名字,可以任意修改。
AppName是应用程序名字,可以任意修改。
InstallDir是应用程序安装的Wince终端的路径,可以任意修改。
第三个字段[CEDevice]CEDevice字段是程序所对应的设备平台,这个大家就不用去管它了。
第四个字段[SourceDisksNames]是指定源文件程序所在的磁盘路径。
1=,"cab",,"D:\oasourcedir\programe\"可以修改"D:\oasourcedir\programe\"来指定源文件所在路径,也就是要制作安装盘的*.exe等文件路径,其它的都不要修改了。
第五个字段[SourceDisksFiles]就是大家要打包的源文件清单,后面的=1就表示文件的路径,也就是[SourceDisksNames]中的1。
1、先在网上下载Wince_Cab_Manager3.0工具。
可以在如下网站上下载:/u6318535/d7*******.htm
或者可以在百度上搜索:Wince_Cab_Manager3.0
2、进行安装。
按默认选项进行安装,安装过程略。
3、如何修改CAB包的配置文件
4、
点击打开,选中要修改的CAB包。
打开文件后,见如下界面。
可见“文件”下面有BaseConfig.xml文件
选中BaseConfig.xml文件,右键,选择“解压”
将解压的文件路径选择好,点击“确定”
对解压出的文件,用记事本打开,对里面的服务器IP地址进行修改,保存,关闭。
再将修改后的文件添加到CAB包中。
点击“文件”,右键“添加”
点了“添加”后,选中你才修改后的BaseConfig.xml文件,点击“确定”会弹出“BaseConfig.xml属性”窗体,不进行任何修改,点击“确定”
再点击菜单“文件”=》“保存”
这时新的包就生成了。
可以把新的包拷贝到手机里,进行重新安装,重新安装会自动覆盖以前的安装文件。
安装好后,可以在手机的“资源管理器”=》ProgramFile=》ParkingManage=》BaseConfig.xml,点击打开此文件,看配置文件是否已经修改成功?。
CAB包自动下载测试环境搭建CAB包自动下载原理:在网页中调用ocx控件时,会首先在客户端检测该调用的ocx控件是否已经在本地注册,然后检测该控件是否存在,当检测到控件未注册或找不到要调用的控件时,浏览器会自动的从服务器上下载并注册该控件。
CAB包自动下载测试环境搭建:两种方法:1、反注册该控件:在CMD中利用regsvr32 控件路径/u对控件进行反注册,例如logocx.ocx在C:\WINDOWS\Downloaded Program Files目录下,打开CMD并进入该目录,输入regsvr32 logocx.ocx /u 即可反注册该控件。
2、删除控件:直接的将ocx控件和相关文件删除即可。
附:PSSTS项目中的ocx控件列表ocx控件:logocx.ocxhndocx.ocxCardReader.ocxCashCodeOcx.ocxEpson532.ocxEPSONU110.ocxKMY350Xocx.ocx相关的dll:MFC42D.DLLMFCO42D.DLLMSVCP60D.DLLMSVCRTD.DLLSZHNDICRW.dllSpvsData.dllMwic_32.dllHNDSTR.DLLhndEXXD.dllHND98C1S.dllHND98c01.dllDTSY22_52_24C04_MW.dllDG98D02.dllDDSY22_51_24C04_MW.dllICT3K5.dllCashCodeDll.dllU110Aprter_Dll.dllKMY350X.dll配置文件:pssts.ini=pssts.iniPSSTS CAB包自动下载测试环境搭建:进入C:\WINDOWS\Downloaded Program Files删除上面列出的ocx列表中的文件;进入C:\WINDOWS\system32删除上面的dll列表和配置文件列表中的文件。
制作支持WIN7标准用户安装的CAB包(转载)制作支持WIN7标准用户安装的CAB包(转载)2011-08-03 09:39:28| 分类:默认分类 |举报 |字号订阅在近期的签名控件OCX测试过程中,碰到了此问题,以往制作的CAB都是在管理员用户下安装的,为了达到能够兼容标准用户,通过查阅网络上资料和反复测试,解决以上问题,现提供出来供大家参考,如有不妥之处,请大家进一步补充说明。
众所周知,制作OCX控件的CAB需要INF配置文件,而且CAB 的最终下载和安装都是根据INF文件的配置来进行的,下面直接贴本次最终测试通过的INF文件代码:[version]signature=”$CHICAGO$”AdvancedINF=2.0[Add.Code]SignX.ocx=SignX.ocx[Deployment]InstallScope=user|machine[SignX.ocx]file-win32-x86=thiscabclsid={控件guid}FileVersion=1,8,3,0RegisterServer=yesRedirectToHKCU=yes以上字段的含义相信大家都基本明白,这里只说明一下如何实现支持WIN7标准用户的。
要实现标准用户成功安装,就需要使用IE8及以后版本的“No-Admin ActiveX” 安装模式;No-Admin安装模式字面意思就是安装不需要管理员权限,主要是为了兼容非管理员用户安装使用控件;No-Admin ActiveX模式依赖与INF文件中以下几个健值:1, InstallScope健[Deployment]InstallScope=user|machine当InstallScope=user时,控件安装时只为当然用户使用,控件的注册表信息都在current_user下,这个就避免了必须管理员权限才能安装的限制。
当InstallScope=user| machine时,控件安装时,如果安装的用户有管理员权限则安装为整个机器使用,否则也只会当前用户使用;2,RedirectT oHKCU健RedirectToHKCU=yes该健的含义就是注册表是否重定向,是否把控件在注册表local_machine和root下的注册信息重定向到current_user中;关于No-Admin ActiveX模式更详细的说明,请参考MSDN/en-us/library/dd433049(v=vs.85).aspx补充:No-Admin ActiveX 安装模式需要WEB服务端的支持,要求Web Server支持正确的mine type mapping,如果使用T omcat,建议在web.xml中增加如下内容:<mime-mapping><extension>cab</extension><mime-type>application/vnd.ms-cab-compressed</mime-type></mime-mapping>。
VC6.0从开发activex ocx控件到发布到网上全过程(sunxiaopeng)ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。
控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。
一:vc创建activex控件创建一个activex控件,名称为:test.ocx,创建步骤略。
显示结果如下:为该控件增加一个方法void GetStr(LPCTSTR str),该方法内部代码如下:这样,GetStr方法就被加入了。
onDraw函数下代码如下下面,测试该方法,鼠标右键控件,选择Invoke Methods,弹出如下对话框:在parameter中输入hello,单击Invoke按钮,显示如下:那么如何在网页中将参数传递给控件,让其在网页中显示出来呢??稍后介绍把test.ocx控件放入c:\ceshi目录下,到网上下载Makecert.exe,Cert2Spc.exe,Signcode.exe,并一同放入c:\ceshi目录下二:ActiveX打包与发布1)用到的工具如下所示:1.Makecert.exe ---证书创建工具2.Cert2Spc.exe ---发行者证书测试工具3.Signcode.exe ---文件签名工具2)ActiveX发布步骤打包activeX需要制作证书,具体用到makecert 、cert2spc 、signtool这三个工具,另外需要:digsig.dll和signer.dll。
现在我们将以上工具和.ocx控件放到同一个目录c:\test下.(1)单击"开始"-->"运行(R)"-->输入"cmd"-->回车-->进入到操作的控件所在的目录(需要将上面所说的工具,和ocx控件放到一个文件夹下);(2)创建inf文件,代码如下[version]signature="$CHICAGO$"AdvancedINF=2.0[Add.Code]test.ocx=test.ocx[test.ocx]file-win32-x86=thiscabRegisterServer=yesclsid={B649E664-D7CF-4481-A58E-AC8B4440794A}DestDir=11FileVersion=1,0,0,1上述代码解释如下:file-win32-x86=thiscab//告诉ie到哪里去得到这个dll,file一共包括三个部分,第一部分是file,这个永远都是这样的(至少目前来说);第二部分告诉声明支持的OS,win32表示windows,mac 就是苹果MAC OX了;第三部分是CPU类型,比如说x86、 ppc (Power PC)、 mips 或者alpha了。
作为非常常用的压缩文件格式,我们生活中见到的cab文件非常多,那么你是否真的了解cab文件的呢?cab是什么文件cab是windows的压缩格式,用winrar可以打开.但有些是经过加密的.用一般的压缩程序都是打不开的。
利用extract解压缩CAB文件extract.exe 是一个 ms-dos 程序,所以没有窗口的图形接口,如果你以前曾是 dos 操作系统的使用者的话,应该对这类程序的使用语法不会感到陌生.来看一下 extract 的指令说明.extract /a < cabinet; < filename; /l < destination;cabinet 是 cab 文件名称filename 是你要从 cab 取出的文件名称destination 是文件解出后要摆放的位置< ;只是用来标记说明的,不是「命令」的一部分,注意:每一参数间都有一空白.如果你有 dos 使用经验,不妨可以使用 /? 参数(extract /?)来看一下 extract 的指令说明.因为我并没有 windows 95/98 的 cab 详细清单,所以,我也不知道哪个文件是在哪个cab 文件里,唯一的方法,就是去试着一个个cab里慢慢找.举个实际的例子会比较容易明白,假设,我要解 shell.dll 到 c:windowssystem下(shell.dll 是在 precopy1.cab 里)假设我的光驱代号是 f,你换成你的光驱代号就行了.(就是指向你 cab文件的所在路径)extract /a f:win98precopy1.cab shell.dll /l c:windowssystemextract 也可以接受「万用字符」* 符号.cab文件如何打开?在打开cab文件的时候,自然首先要推荐我们最常用的winrar软件,其次国产的2345好压、360压缩也是非常不错的。
打包智能设备解决方案以便进行部署(vs2005)本演练演示如何使用 Visual Studio 2005 将应用程序及其资源打包到一个CAB 文件中,以便可以将它部署到最终用户的智能设备上。
本演练演示如何执行下列操作:∙将一个 CAB 项目添加到解决方案中。
∙更改产品名称。
∙更改输出路径。
∙用应用程序的主输出填充 CAB 文件。
∙在必要时添加依赖项。
∙创建应用程序的快捷方式。
∙编辑注册表项。
先决条件一个现有的智能设备解决方案。
对于本打包演练,可以考虑创建并生成一个简单的项目,例如,演练:简单的hello world程序项目。
安装 CAB 项目为解决方案添加智能设备 CAB 项目1.打开现有的智能设备项目,并确保“Solution Explorer”可见。
2.在“File”菜单上指向“Add”,然后单击“new Project”。
出现“Add new Project”对话框。
3.在左侧的“Project types”窗格中展开“Other Project Types”节点,再单击“Setup and Deployment”。
4.在右侧的“Templates”窗格下选择“Smart Device CAB Project”(智能设备 CAB 项目)。
这是唯一可用于智能设备的 CAB 项目类型。
其他项目类型仅用于桌面解决方案。
5.在“Name”框中,键入CABProject,然后单击“OK”。
此 CAB 项目即会添加到您的解决方案,并显示在“Solution Explorer”中。
现在显示“File System”的两个窗格。
自定义 CAB 项目更改产品名称和其他项目属性1.在“Solution Explorer”中选择“CABProject”(如果尚未选定)。
2.打开“属性”窗口。
3.在属性网格的“ProductName”字段中,将值更改为“MyProduct”。
“ProductName”属性的值决定了在文件夹名称和“添加或删除程序”对话框中为应用程序显示的名称。
最近写了一个ocx控件,因为此控件依赖于别人提供给我的dll,所以直接使用ocx的话不能
自动注册,谷歌说可以封装成cab,把依赖的dll都放进去。
然后继续谷歌cab制作方法,发现最难的就是inf配置文件,下面说一下配置文件写法并分
享一个简单易用的cab打包工具。
; =========================testOcx.inf ========================
; This .inf file will control the installation of the testOcx
[version]
; version signature (same for both NT and Win95) do not remove
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
testOcx.ocx=testOcx.ocx
testDll1.dll=testDll1.dll
testDll2.dll=testDll2.dll
[testOcx.ocx]
;"thiscab" 是一个关键字,意指包含该INF的CAB文件。
;"file-win32-x86" 指定平台是 x86。
file-win32-x86=thiscab
;"RegisterServer"指改文件是否需要注册,一般情况下只有一个ocx需要注册,但有时也需要
注册dll,需要注册时必填,不需要注册时可不写
RegisterServer=yes
;"clsid" 指的是要安装控件的CLSID。dll是没有classid的,所以dll不用写classid
clsid={39898BCB-CACA-466C-A374-75719C0F78CD}
;"FileVersion"是此文件的版本号,物理文件上右键→属性→详细信息可看到。注意:有的dll
详细信息的版本号是空,这时候可以不填写此关键字。
FileVersion=1,0,0,0
;"DestDir"指的是装载目录或者文件的地址: 11 指定为系统目录 WINDOWS/ /SYSTEM32;注:
DestDir的代表值http://blog.csdn.net/wangyouxiu/article/details/2728507
DestDir=11
[testDll1.dll]
file-win32-x86=thiscab
DestDir=11
[testDll2.dll]
file-win32-x86=thiscab
FileVersion=1,2,4,0
DestDir=11
[RegisterFiles]
;把需要注册的所有控件或动态链接库的路径写在下面。%11%跟上面的DestDir=11是一样的
%11%/testOcx.ocx
; ====================== end of testOcx.inf =====================
上面的这段代码是testOcx.inf中的全部内容,下面分享cab打包工具。
http://download.csdn.net/detail/leandzgc/4659158
把需要注册的ocx和依赖的dll,就是Inf里面涉及的所有文件放到一个文件夹中,然后打开
上面提供的工具,找到对应的文件夹,然后确定打包。打包完毕后会自动弹出打包
好的文件所在目录,有一个Package.cab文件,把它改名为textOcx.cab。然后就可以
直接在web中使用了,跟原来使用ocx是一样的,只不过把codebase的.ocx换成.cab
而已。
控件签名我就不做了,我一直都是没有签名的,到时候大家只要把服务器地址加入可信站点,
然后自定义级别里面全部启用就行了。
“开始 → 运行 ”中输入“iexpress”