不是调用winrar来实行的,机子没装解压工具也可以解压。

解决方案 »

  1.   

    winrar和其它的压缩软件一样,都使用了自己的特殊算法来压缩,解压,并以这个取得比他人更好的效果,如果你要用自己的程序来实现,首先要搞清楚他的算法,而这个又是这个产品的核心,不如你和作者联系一下看他愿不愿意提供给你?
      

  2.   

    是不是把 winrar 程序的文件包含在自己的程序下了。这样不要对方安装也可以实现加解压功能
      

  3.   

    rar的发布中有一个unrar.dll,可以使用它来进行解压。其实,许多的压缩软件对rar的支持都是使用这个dll的
      

  4.   

    支持楼上的说话!
    有 Unrar.dll 的接口函数资料吗?
      

  5.   

    大家一起来研究一下unrar.dll文件吧
      

  6.   

    终于找到官方的支持资料:
    http://www.rarlab.com/rar_add.htm
    或者有用就共享出来。
      

  7.   

    这是解压的函数:
    function jieyabao(rarpath, typer, openpath, jiepath: string):integer;
    //(1) 功  能 : 解压数据包rar文件
    //(2) 参  数 :
    //(3) 返回值 :  0 成功 1错误
    //(4) 作成者 : 撖牛牛
    //
    var
      SUInfo: TStartupInfo;
      ProcInfo: TProcessInformation;
      str1:pchar;
    begin
      FillChar(SUInfo, SizeOf(SUInfo), 0);
      with SUInfo do
      begin
        cb := SizeOf(SUInfo);
        dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
        wShowWindow := SW_SHOW;                                
      end;
      str1:=pchar(rarpath+ typer+ openpath +jiepath);
      if CreateProcess(nil,str1, nil, nil, False,
        CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,nil, SUInfo, ProcInfo) then
      begin // pchar(rarpath+ typer+ openpath +jiepath)
        WaitForSingleObject(ProcInfo.hProcess, INFINITE);
        CloseHandle(ProcInfo.hProcess);
        CloseHandle(ProcInfo.hThread);
        result:=0;
      end else
      begin
        result:=1;
      end;end;
      

  8.   

    你在看看winrar 的帮助你就明白了,我写的这个函数其实就是执行了它在DOS下执行命令的过程
      

  9.   

    关注smlitao982(雷电之音) 上司的代码 急用
    [email protected]  多谢!
      

  10.   

    只要把WINRAR自解压的模块加到RAR文件的前面,生成一个文件就可以变成自解压的RAR了。以前的时候用VB做过。
      

  11.   

    winexce('winrar.exe','[Path]'),直接调用RAR运行不就可以了
      

  12.   

    如果机器上没装winrar,用系统调用也不能实现呀
      

  13.   

    看看Delphi的安装目录下Source\Rtl\Common\ZLib.pas里面有什么东东
      

  14.   

    “如果机器上没装winrar,用系统调用也不能实现呀”笨啊,就一个unrar.dll,你不会拷贝啊,又不用注册的