读书人

怎么用VC实现自解压程序

发布时间: 2012-09-14 11:53:44 作者: rapoo

如何用VC实现自解压程序?
想用VC编写一个程序,效果类似压缩软件的压缩成自解压文件的功能.就是一个exe,双击就可解压到临时目录然后自动运行.

[解决办法]
调用WinRar.exe
从命令行也可以运行 WinRAR 命令,常规的命令行语法描述如下:

WinRAR <命令> -<开关1> -<开关N> <压缩文件> <文件...> <@列表文件...> <解压路径\>

命令要 WinRAR 运行的字符组合代表功能
开关切换操作指定类型,压缩强度,压缩文件类型,等等的定义。
压缩文件要处理的压缩文件名。
文件要处理的文件名。
列表文件列表文件是包含要处理文件名称的纯文本。文件名应该在第一卷启动。可以在列表文件中使用//字符后添加注释。例如,你可以包含两列字符串创建 backup.lst:c:\work\doc\*.txt //备份文本文档 c:\work\image\*.bmp //备份图片c:\work\misc并接着运行: winrar a backup @backup.lst你可以在命令行中同时指定普通的文件名和列表文件名。
解压路径只与命令 e 和 x ,搭配使用。指出解压文件添加的位置。如果文件夹不存在时,会自动创建。
注意事项
a) 如果未指定 文件 或是 列表文件 时,WinRAR 将会以缺省的 *.* 运行全部的文件;
b) 如果未指定压缩文件扩展名时,WinRAR 将会使用在 压缩配置 中选定的默认压缩文件格式。但你可以指定 .RAR 或 .ZIP 扩展名来替换它们;
c) 在命令行所输入的开关会替换相同的配置设置值;
d) 在命令 c、e、s、t、rr、k 和 x 可在压缩文件名中使用通配符。如此可以用单个的命令来进行超过一个以上的压缩文件,除此之外,如果你指定 -r 开关于这些命令时,它们将会搜索在子文件夹中的压缩文件;

e) 某些命令和开关只应用在 RAR 压缩文件,有些则在 RAR 和 ZIP 都可使用,而某些则可应用在全部的压缩文件格式。这一些都得看压缩文件格式所提供的特性而定;
f) 命令和开关的大小写是相同意思的,你可以用大写或者小写来下命令均可。

a添加文件到压缩文件
c添加压缩文件注释
ch改变压缩文件参数
cv转换压缩文件
cw写入一个压缩文件注释到文件
d从压缩文件删除文件
e从压缩文件解压压缩,忽略路径
f刷新压缩文件中的文件
i在压缩文件中查找字符串
k锁定压缩文件
m移动文件和文件夹到压缩文件
r修复受损的压缩文件
rc重建丢失的卷
rn重命名压缩文件
rr[N]添加数据恢复记录
rv[N]创建恢复卷
s[name]转换压缩文件成为自解压文件类型
s-删除自解压模块
t测试压缩文件
u从压缩文件中更新文件
x以完整路径名称从压缩文件解压压缩

命令 A - 添加文件到压缩文件
添加指定的文件和文件夹到压缩文件中。此命令行等同于 添加。
注意: 因为分卷压缩文件修改是禁用的,此命令无法应用来更新分卷压缩文件,只用于创建时。
例子:
a) 从当前文件夹添加全部 *.hlp 文件到压缩文件 help.rar 中

WinRAR a help *.hlp

b) 从当前文件夹和子文件夹压缩全部文件成为 362000 字节大小、固实的、分卷自解压文件 save.part1.exe,save.part2.rar,save.part3.rar 等,并在每一个分卷中添加恢复记录
WinRAR a -r -v362 -s -sfx -rr save

因为未指定文件名,全部文件 (*.*) 将会被添加。

c) 如果指定了文件夹名,并结合引用参数 开关 -r,这时整个文件夹和子文件夹的全部内容都会被添加到压缩文件中。下面的命令将会把文件夹 Bitmaps 中全部的文件添加到 RAR 压缩文件 Pictures 中

WinRAR a -r Pictures.rar Bitmaps
当然这也可以使用常规格式用 Bitmaps 来代替 Bitmaps\*.*。
[解决办法]
图形界面 RAR 和 ZIP 自解压模块(Default.SFX 和 Zip.SFX)
使用这两种模块你可以创建 GUI (图形模式) 自解压文件 的 32 位 Windows 版本(Windows 95,98,NT 等等),这些模块无法在 Windows 3.1 或 DOS 下运行。

使用 Default.SFX 模块于 RAR 压缩文件 以及 Zip.SFX 给 ZIP 压缩文件。

这些模块均支持简易的 Setup 命令,你可以将 Setup 命令叙述添加到自解压 压缩文件注释 中。下面是 Setup 命令的叙述,在命令上单击可获得详细描述。

Delete解压前先删除文件
License显示程序的许可协议
Overwrite选择文件的覆盖模式
Path设置默认目标路径
Presetup指定解压前运行的程序
SavePath存储目标路径
Setup指定解压后运行的程序
Shortcut创建解压文件的快捷方式
Silent跳过开始时的对话框
TempMode解压压缩文件到临时文件夹
Text添加文本到自解压对话框文本窗口
Title设置自解压对话框标题

下面脚本设置对话框标题为“Calculator 3.05”,更改对话框的显示文本,设置默认的解压路路径为“Program Files\Calculator”,启用覆盖现有文件并在解压所有文件后运行 Setup.exe。

Title=Calculator 3.05
Text
{

Calculator 是共享软件,任何人都可在 40 天
的评估试用期间内使用此软件。
在超过测试期限之后,如果你希望继续使用
Calculator 的话,你“必须”注册。

}
Path=Calculator
Overwrite=1

Setup=setup.exe
[解决办法]

探讨
...感谢回答,不过不是我想要的,我是想自己写程序来实现自解压功能。

[解决办法]
探讨
...感谢回答,不过不是我想要的,我是想自己写程序来实现自解压功能。

[解决办法]
包含一个7Z的dll,然后自己调用

读书人网 >C++

热点推荐