delphi 得到 WinRar 处理解压缩文件的返回值 ?


本文整理自网络,侵删。

 用 Delphi 的 WinExec() 调用 WinRar 的命令行方式,解压缩文件,能够得到调用是否成功的返回值,可是,如何能够得到 WinRar 在处理解压缩文件后的返回值? 



WinRar退出值


RAR 成功操作后返回 0 。非 0 返回码意味着操作由于某种错误被取消:

255 用会中断 用户中断操作

8 内存错误 没有足够的内存进行操作

7 用户错误 命令行选项错误

6 打开错误 打开文件错误

5 写错误 写入磁盘错误

4 被锁定档案 试图修改先前锁定的档案文件
使用 'k' 命令

3 CRC 错误 解压缩时发生一个 CRC 错误

2 致命错误 发生一个致命错误

1 警告 没有发生致命错误

0 成功 操作成功



function AddToRAR(RarDir, ArchiveName, FileNames, ArchiveOptions : string): integer;
var
PChTmp : PChar;
ExitCodes : dword; si : STARTUPINFO;
pi : PROCESS_INFORMATION;
begin
PChTmp := PChar(RarDir + '\rar.exe a ' + ArchiveName + ' ' + FileNames + ' ' + ArchiveOptions);
ZeroMemory(@si, sizeof(si));
si.cb := SizeOf(si);
if not CreateProcess( nil, PChTmp, nil, nil, False, 0, nil, nil, si, pi ) then
begin
ExitCodes := 999;
end
else
begin
WaitForSingleObject(pi.hProcess, INFINITE);
GetExitCodeProcess(pi.hProcess, ExitCodes);
end;
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
result := ExitCodes;
end;

相关阅读 >>

Delphi 如何知道鼠标点击的statusbar的位置

Delphi - 利用dll编程控制摄像头实现拍照、录制视频

Delphi app检测智能手机震动

Delphi Delphi tparallel cleanup needed用法

Delphi 2010 unicode

Delphi 中将tmemorystream转换为'string'

Delphi 实现程序 动态 类名

Delphi用sendmessage获取目录下所有文件

Delphi读写firebird二进制数据

Delphi 实现对xml文件的读写操作

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...