VB解压缩带密码RAR文件的两者方法.docVIP

  • 1
  • 0
  • 约2.73千字
  • 约 5页
  • 2024-02-23 发布于浙江
  • 举报

VB解压缩带密码RAR文件的两者方法

在一些批处理任务的应用程序如安装程序中,需要对压缩文件进行解压缩处理。VB来实现对压缩文件格式,如RAR、Zip等文件的解压缩,总的来说,有以下两种方法:

一、采用winrar命令行

一般来说,安装好winrar后,在安装目录中,有个名为rar.txt的文件。其实该文件就是Winrar的控制台(命令行)中文手册。下面我们一起来学习一下,和解压缩文件有关的命令行。

Winrar命令行的通用格式是:

RAR[-][]

[][]

举例来说,为a时,表示添加文件到压缩文件中,其中需压缩的文件由列表文件指定。当为e的时候,就表示解压文件到当前目录。如果需要将压缩文件解压缩到自定义目录,则通常使用x命令,该命令表示带绝对路径进行解压缩。-为-y,表示对于所有询问全部回答是。如果rar文件包含密码,则需要添加开关为-p密码字符串,否则不能正常解压缩。

如果要判断是否winrar命令行是否执行成功,可以通过该命令行的返回值来判断。如果返回值为0,则成功执行。如果不为0,则执行过程中出现错误。错误代码rar.txt中有详细定义。请仔细研读该文件。

在有了上述理论作为基础之后,接下来,我们用VB来实现创建和解压缩一个带密码的压缩文件。

打开VB6,新建一个标准的Exe工程文件,界面设计如下图所示,控件的名称采用默认的名称。

图解压缩界面

程序首先要获得Winrar的安装路径,一般来说,安装好了Winrar后,会在注册表的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AppPaths\创建一个winrar.exe的路径,该路径下有一个名为Path的字符串项,该项的值保存的就是Winrar的安装路径。本例中,引用RegistryAccessFunctions对象来实现对注册表的操作。

PrivateFunctionGetWINRARPath()AsString获得Winrar安装路径

……

KeyFound=myReg.GetKeyValue(HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\CurrentVersion\AppPaths\winrar.EXE,Path,GetWINRARPath)

……

GetWINRARPath=GetWINRARPath\WINRAR.exe

EndFunction

压缩文件

PrivateSubCompress(ByValTARGETAsString,ByValFilelistPathAsString,ByValPasswordAsString)

……

ShellGetWINRARPatha-pPasswordTARGET@FilelistPath,vbHide

……

EndSub

解压缩文件

PrivateSubDeCompress(ByValTARGETAsString,ByValSourceAsString,ByValPasswordAsString)

……

ShellGetWINRARPathx-y-pPasswordTARGETSource,vbHide

……

EndSub

其他代码由于篇幅的关系,不在这里列出来。请到笔者个人主页原创作品栏目中下载源代码。

二、采用Unrar.dll(或者Unrar.ocx控件)进行解压缩

将Unrar.dll控件复制到工程目录或者Windows\System32下,并在工程目录下,新建一个批处理文件,输入regsvr32.exe/sUnRar.dll指令后存盘。运行该批处理指令,对其进行注册。注意为了保证程序的正常运行,需要要获得最新版本的UnRar.dll文件。读者可以去RAR实验室下载,地址是:/rar_add.htm。

下面介绍一下Unrar.dll在VB中的使用方法。

新建一个标准exe文件工程,将Unrar.ocx控件添加到工程中,界面和上一个例子相同。

添加以下API函数声明到窗体的通用声明部分:

PublicDeclareFunctionRAROpenArchiveLibunrar.dll(ByRefArchiveDataAsRAROpenArchiveData)AsLong

类似地,同时需要声明的还有:RARCloseArchive、RARReadHeader、RARProcessF

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档