作者:mouse    信息技术来源:本站原创    点击数:    更新时间:2006-1-4
制作CAB自解压文件的工具——IExpress
   ——IExpress大家知道CAB这种压缩格式比ZIP的压缩率要高,与RAR相当,而且是一种标准的压缩格式,能够被WINZIP等众多压缩软件打开,但制作CAB自解压文件的工具却不多。其实好的工具就在我们的身边,在IE中文版中有一个隐藏的自解压CAB制作工具——IExpress,它就能够把你的文件压缩成一个自解压的CAB压缩包,而且生成的自解压程序界面是全中文的。打开c  \windows\system文件夹,找到iexpress.exe,它就是IExpress,为它创建一个快捷方式,以后运行快捷方式就可以了。
   虽然IExpress制作出的自解压文件是中文界面,但IExpress还是英文界面,下面以制作一个最简单的自解压CAB文件为例,介绍一下IExpress的用法。
 一、运行iexpress.exe,出现IExpressWizard(向导),然后依次按“下一步”进入各步骤;
1、选择默认选项“CreatenewSelfExtractionDirectivefile”(建立新的自解压文件);

2、选择“Extractfileonly”(仅解压文件)单选钮;

3、输入自解压程序标题栏文字,比如“中国节日”;

4、选择默认选项“Noprompt”(解压前不提示);

5、选择默认选项“Donotdisplayalicense”(不显示许可协议),单击“Add”按钮,在弹出的“打开”对话框中选取需压缩的文件;

6、选择默认选项“Defaultrecommended ”(按默认方式显示程序窗口)

7、选择默认选项 “No message”
8、选择“Browse”为你的自解压程序选择一个保存的位置和名称

9、选择默认选项Save Self Extraction Directive(SED)file 创建你的CAB压缩包信息文件,也可以选择不创建。

10、选择“下一步”就可以创建你的压缩文件了。
二、说明:虽然压缩率比较高,又是系统自带的,但它只能添加文件来创建压缩包,不能将文件夹也同时进行压缩,使用时还是RAR显得更方便些。

Internet 软件分发单位是“软件包”,它由包含 .inf 文件或软件分发 (.osd) 文件(或两者都包括)的 CAB 文件 (.cab) 所组成。一个分发单位也可以包含软件组件,如 ActiveX 控件 (.ocx)、.dll 文件、.exe 文件、Java 类文件或小程序。当 Web 页上 OBJECT 元素的 CODEBASE 特性引用包含.inf 文件的 CAB 文件时,Internet Explorer 3.0 和更新的版本将自动把 CAB 文件作为软件分发单位。
第一步:创建一个inf文件:
INF文件是一个文本文件,指定运行控件所需要下载或者呈交的文件(比如DLL或者其它OCX)。
一个INF文件就捆绑了CAB压缩文件所有的必须文件。 缺省情况下,
与现有硬盘中文件版本号相同的文件不被下载。
要了解有关INF文件及其选项(包括如何创建独立于平台的INF文件)的详细情况,
请参考平台软件开发工具包(Platform SDK,)的设置和系统管理服务(Setup and System Management Services)
部分的\Setup API\Overview\INF Files目录下的内容。
下面就以我自己写的一个videoweb.dll为例子。在videoweb.dll中使用到:tdiio.dll,encoder.dll,decoder.dll,tdiio.ini,user.ini,
camer.ini,drivo.ini.
video.inf的例子:
;inf file for videoweb.dll
[version]
signature=$CHICAGO$

[DestinationDirs]
DLLSysCopy=11
IniWinCopy=25

[DefaultInstall]
CopyFiles=DllSysCopy,IniWinCopy
AddReg=videoReg

[DllSysCopy]
tdiio.dll
Decoder.dll
VideoWeb.dll

[IniWinCopy]
camer.ini
user.ini
xvidMP4.ini

[videoReg]
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC},"",%REG_SZ%,"Video Class"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Control
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Implemented Categories
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\InprocServer32,"", %REG_SZ%,"%11%\VideoWeb.dll"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\InprocServer32,"ThreadingModel",%REG-SZ%,"Apartment"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\MiscStatus,"",%REG_SZ%,"0"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\MiscStatus\1,"",%REG_SZ%,"131473"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\ProgID,"",%REG_SZ%,"VideoWeb.1.1"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Programmable
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\ToolboxBitmap32,"",%REG_SZ%,"%11%\VideoWeb.dll,102"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\TypeLib,"",%REG_SZ%,"{FC4352CB-BB55-498C-BB21-E4BAE2FC2584}"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Version,"",%REG_SZ%,"1.0"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\VersionIndependentProgID,"",%REG_SZ%,"VideoWeb.1"
;end of INF file

DestinationDirs:指的是装载目录或者文件的地址: 11 指定为系统目录 WINDOWS/SYSTEM 或者 WINNT/SYSTEM32;
10 规定为窗口目录、WINDOWS或者WINNT。
videoReg:如果是自己写的控件:可以在本地先用regsvr32 xxx.dll注册后,从注册表中找到上面的注册信息。
当然以上仅仅是在internet上分发软件时一个很简单的inf文件,还有更复杂的inf文件。请看SDK。

第二步:把video.inf, tdiio.dll,encoder.dll,decoder.dll,tdiio.ini,user.ini,
camer.ini,drivo.ini.放在一个文件夹中。
第三步:开始制作cab文件,我是用IExpress工具制作的(该工具在winnt\system32目录下面)。
1:选择创建新的自解压指令文件。
2:选择仅创建压缩文件(ActiveX安装)
3:点击添加把你要供别人下载的文件添加
4:点击浏览 输入*.cab文件的存放地址(包含文件名)
5:就随便了
好了制作完成。
现在在你的网页中使用该控件,当别人访问你的网页时,如果他的机子上没有你的控件,浏览器就会自动下载安装。因为你的控件可能没有获得签名
因此得在你的浏览器中把浏览器的安全级别降低。在internet 工具中选择安全,选择自定义。找到下载未签名的ActiveX控件。选择其下面的提示或者启用。
在网页中插入:
codebase="video.cab#version=2,0,0,1"
id=Video1 style="HEIGHT: 507px; WIDTH: 718px">
该句.
注意:得把*.cab 文件你和的网页放在同一目录下。或者在codebase中指定*.cab的路径。

1个例子
[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
PowerPlayer.dll=PowerPlayer.dll
PowerList.ocx=PowerList.ocx
PSNetwork.dll=PSNetwork.dll

[PowerPlayer.dll]
file-win32-x86=thiscab
clsid={5EC7C511-CD0F-42E6-830C-1BD9882F3458}
FileVersion=1,0,0,98
RegisterServer=yes

[PowerList.ocx]
file-win32-x86=thiscab
clsid={20C2C286-BDE8-441B-B73D-AFA22D914DA5}
FileVersion=1,0,0,6
RegisterServer=yes

[PSNetwork.dll]
file-win32-x86=thiscab

http://msdn.microsoft.com/...
这里有inf文件格式的说明,然后你要下载cabarc对inf以及ocx打包,还要用signcode对打包后的文件进行签名。
例子:w3socket.inf
======================
[Version]
Signature="$Chicago$"
AdvancedINF=2.5

[DefaultInstall]
CopyFiles=DLLFiles
RegisterOCXs=RegisterOCXSection
AddReg=AddToRegistry

[DefaultUninstall]
cleanup=1
Delfiles=DLLFiles
UnRegisterOCXs=UnRegisterOCXSection
DelReg=DeleteRegistry

[RegisterOCXSection]
%11%\socket.dll

[UnRegisterOCXSection]
%11%\socket.dll

[SourceDisksNames]
1="W3Socket",W3Socket.cab,1

[SourceDisksFiles]
socket.dll=1

[DLLFiles]
socket.dll

[inffile]
w3socket.inf

[DestinationDirs]
DLLFiles=11
======================
然后用命令cabarc n W3Socket.cab W3Socket.inf Socket.dll,将Socket.dll和W3Socket.inf打包到W3Socket.cab
最后用命令signcode -spc ..\jinhu.spc -k jinhu -n "W3Socket Component" -i http://www.google.com -t http://timestamp.verisign.... W3Socket.cab
对W3Socket签名。

用PackageForTheWeb吧,它能够自动生成inf文件,加入数字签名,等等...
www.installshield.com
汉化版可以在http://www.hanzify.org下载

 现在网络上出现了很多在线工具,特别是一些所谓的"黑客"站点提供大量在线破解工具,用来突破网吧限制,为网友提供方便的同时大大提高了自己的访问量,我查看了一下这些在线工具网页,发现它们多是利用"tegoweb"这个让EXE在网页中运行的工具制作出来的,而这个工具是个共享软件,有时间限制,还有一些是利用几个大点的安全或黑客站点提供的控件制作的,看着提示中显示别人的"数字签名",你是不是觉得有点别扭,自己特想改改哪?如果你和我一样是个追求完美的人,请随我一起来自己做个自己的"数字签名"控件,让你的程序在网页中"飞"起来!当然,如果你有很多Money的话,花钱去证书颁发机构申请也未尝不可,但我很穷,而且我专做"好事",只好自己做啦!~.~

首先先看看我们所需的工具,如下:

一、"数字证书"制作软件MakeCert
  makecert.exe是一个微软出品的用来制作"数字签名"的软件,是命令行界面,利用它可以轻松地做出属于自己的个人"数字签名",当然自己做出来的这个数字签名是不属于受信任的证书的,但这并不太影响使用^*^

二、CAB压缩软件包制作工具IEXPRESS

  是MAKECAB.EXE的GUI界面程序,用来把程序所需文件压缩打包为CAB格式,便于传输,当然如果你的程序是一个独立的EXE文件时,可以不需要用这个工具打包,但考虑现在多数免费空间不支持EXE格式的文件上传,建议打包!类似的工具还有命令行界面的Cabarc.exe;

三、数字签名软件 Signcode
  我们可以使用signcode.exe和自己的"数字证书"签署自己的软件,给软件加上数字签名,使其可以在网页中运行。

  大伙准备好了吗?下面就和我一起来属于自己的数字签名控件吧,Lets go......

第一步:制作"数字证书"
本次使用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。
[注:如果你的程序是单独的一个EXE文件,也可以省去本步骤!]

第三步:为icyfox.CAB签署数字签名
运行signcode.exe,选择icyfox.CAB,"签名选项"中的"签名类型"选定"自定义(C)",下一步 "从文件中选择"上面第一步导出的证书文件icyfox.cer,再下一步的私匙选定第一步生成的icyfox.pvk文件,然后进入描述,如图四:

图四
注意,图中"描述(可选)":下的输入框中输入的文字在把程序嵌入网页中是会出现,请你根据"个人爱好"写上相应的描述语句,剩下的就点下一步了事!这样一个使用自己的"数字证书" 签署的具有"数字签名"可以在网页中运行的程序就做好啦!
第四步:当然就是把做好的程序嵌入到网页中,然后上传啦!
加入到网页中的代码如下(CS.HTM):

访问CS.HTM,就会出现如图五:

图五
当访问者点击"是"按钮后,程序就会运行,呵呵,这样的界面你还满意吗?这样的在线工具是不是即可方便网友,又显示出自己的个性呀!更重要的可以给自己的主页增加人气噢!你还等啥?快去做吧!如果你想用它做个控件木马我也无话可说......

因为最近为客户开发WEB系统,迫于页面的烦琐,故想到使用VB来开发控件,使用控件增强页面功能。

不料昨日在部署自己的控件时客户机一直不能正确下载,所以想到用数字签名来解决这个问题

试了好久(也查了好多资料),发布者都说实验成功,可我们却一直不能实现?!

经过一天的忙活,现在终于找到原因了。

实验步骤如下(以下所有文件都是放在同一级文件夹下):

1、在装有.net系统的机器上找到下面的几个工具(因不同版本路径不同,所以各位可以查找一下)
  要用到:makecert.exe cert2spc.exe signcode.exe 三个工具

2、先使用makecert /sv "私钥文件名.pvk" /n "CN=你的信息" "证书文件名.cer",创建相应的
私钥及证书文件(会有成功提示)

3、使用cert2spc "证书文件名.cer" "#7文件名.spc" (会有成功提示)

4、使用VB做好控件,并生成OCX文件,经过打包成.CAB文件(同时还有个测试用的.HTM文件)

5、双击signcode执行。一、选择被加入证书的文件(这儿最容易出错,应选择那个.CAB文件,很多朋友是选了.OCX文件,就是错在这儿了)二、(使用自定义)选择.SPC文件 三、选择.PVK文件。下面就一路NEXT就行了。

转载于:https://www.cnblogs.com/goodyao/archive/2008/03/30/1130300.html

制作CAB自解压文件的工具——IExpress相关推荐

  1. 使用WinCE CAB Manager制作CAB安装文件

    WinCE CAB Manager是一个实用的 PPC 端 CAB 制作打包软件,可以对 PPC CAB 软件进行的增删.快捷方式的修改,安装目录的设定,注册表的编辑等,可以定制自己的 CAB 安装文 ...

  2. 深挖你硬盘里的见不得人的【学习资料】,Python制作一款文件搜索工具

    前言 今天来教大家做一个文件搜索工具,专门来找你电脑里的[学习资料],嘿嘿 开发环境 解释器: Python 3.8.8 | Anaconda, Inc. 编辑器: pycharm 专业版 先演示效果 ...

  3. 微软html帮助文档制作,MicrosoftHTMLHelpWorkshop(CHM文件生成工具)

    MicrosoftHTMLHelpWorkshop是一款文件制作工具,通过此软件能够帮助我们对CHM文件进行快速编程配置,也可快速的进行建立需要的HYML格式的文件,软件还可单独的进行运行,可快速的制 ...

  4. Aveiconifier是一个非常实用方便的制作ico格式文件的小工具~

    本文地址:http://www.jb51.net/article/8314.htm Aveiconifier是一个非常实用方便的制作ico格式文件的小工具~ 也许有一些对网页知识不是很了解的网友并不清 ...

  5. 【Python 文件粉碎工具】——用python制作一款可以粉碎文件的软件工具,用文件恢复工具都找不回来,非常可靠

    点个赞留个关注吧!! 文件粉碎工具:适用于粉碎密码文件和机密的escel表格等等,主要作用就是防止 别人用数据恢复大师把你刚删除的机密文件恢复过来,造成密码丢失等. 程序原理:修改内部数据,使用ope ...

  6. 使用 WinRAR 制作自解压文件

    操作步骤 1 .选择要需要压缩的文件或者文件夹,点击右键,在菜单中选择 WinRAR 的「添加到压缩文件」,打开「压缩文件名和参数」对话框. 勾选「创建自解压格式压缩文件」,压缩文件名的扩展名就会自动 ...

  7. winrar 制作自解压文件脚本-实现安装程序

    利用winrar 制作自解压文件功能,可以实现程序打包,制作成安装文件.图形操作方式有点复杂,虽然可以存为配置,后直接调用,但是每次都要鼠标操作,比较麻烦.换一个程序打包也要改配置.直接利用命令行的方 ...

  8. transmac装黑苹果_TransMac(dmg文件打开工具) v12.5官方版 使用教程:制作mac os 黑苹果启动盘...

    TransMac(dmg文件打开工具)  v12.5官方版 使用教程:制作mac os 黑苹果启动盘 官方版本是要收费的,个人使用好像也没什么影响,就是要等几秒钟后才能启动. TransMac这个软件 ...

  9. linux用dd工具制作img镜像文件

    制作软盘镜像文件diska.img 命令: dd if=/dev/zero of=diska.img bs=512 count=2 复制boot.bin到boot.img中 命令: dd if=boo ...

最新文章

  1. 基于Spark ML 聚类分析实战的KMeans
  2. Pycharm ipynb
  3. 怎么理解python的__init___理解Python中super()和__init__()方法
  4. DataGridView的DataGridViewComboBoxColumn列点击一次,自动处于编辑状态
  5. Ubuntu下搭建Kubernetes集群(3)--k8s部署
  6. 博客刚刚开通,纪念一下。
  7. 【转】10.Qt编程涉及的术语和名词
  8. 10个理由告诉你为何要学Java编程?
  9. 小新pro13 重装注意_新款小新pro 13注意什么?买前必读
  10. Oracle11gR2下搭建DataGuard主备同步详解
  11. java 图片服务器 上传_Java实现把图片上传到图片服务器(nginx+vsftp)
  12. 【论文笔记】Revisiting Graph based Collaborative Filtering: A Linear Residual Graph Convolutional Network
  13. OpenWrt的主Makefile工作过程-转
  14. hdu 1698 线段树成段更新
  15. 散列表(哈希表)(散列函数构造、处理冲突、查找)
  16. 让win7任务栏资源管理器默认打开的“计算机”而不是“库”文件夹
  17. C语言实现顺序栈的初始化进栈出栈读取栈顶元素
  18. 优趣短视频解析客户端小程序源代码
  19. 计算机网络复习题(全套)
  20. SolidWorks转3DMAX再到Unity3D的转换模型及单位设置

热门文章

  1. 选什么专业?找什么样的工作?教你四个维度
  2. 为什么很多人已经很努力了
  3. 创业须要恪守“一个常识“
  4. 任老爷子退休以后,华为谁最有可能接手,为什么?
  5. MATLAB中ASCII码的举例
  6. Js利用Div自定义提示框弹窗+定时器
  7. Mybatis_day3_Mybatis的动态SQL
  8. azure blob_从Azure Databricks访问Azure Blob存储
  9. 如何连接sql托管实例_如何使用Windows托管的文件共享来支持SQL Server容器
  10. 解决子元素浮动,父元素没有撑开的问题