各位高手:
    比如:有一个执行文件a.exe,还有其他相关文件b.txt,c,d。现在,我通过一种方法(就是我想请教的)生成一个文件,设为sp.exe,我双击sp.exe,把a.exe,b.txt,c,d自动解压至临时目录,设为C:\WINDOWS\Temp下,然后不用我干预(不用双击a.exe),自动执行a.exe,执行完之后,自动删除C:\WINDOWS\Temp下的a.exe,b.txt,c,d。 请教怎么处理?谢谢各位高手!

解决方案 »

  1.   

    安装程序?我都是用Install Shield制作.
      

  2.   

    用一些安装文件,如上面说的 IS, 如果如你说得那么简单的文件,也可用 winrar, winzip 处理
      

  3.   

    用WISE
    简单的话 写一个BAT文件,其中依次拷盘,解压,删除,然后刻录盘时再写一个INF文件,INF文件中自动执行指向BAT文件
    但要注意,从光盘中拷到硬盘上的文件,默认属性不可删除,要在BAT中用DOS中的ATTRIB命令去掉只读属性,批处理方可删除
      

  4.   

    其实,我这个不是安装程序,是一个升级程序,Wise,Is我都用过,或许Wise,Is我学得不够到位,目前我不能用这些工具解决我的需求,所以我放到网上来请教各位,请各位高手仔细看看我的描述。谢谢!
      

  5.   

    将B.exe的数据追加到a.exe尾部生成C.EXE,C.exe的功能和A是一样的,A,B都是
    你自己写的,所以A执行的时候,把自己尾巴后的数据单独COPY出来,就是完整的
    B.exe
      

  6.   

    用WinRAR生成自解压文件,
    在常规选项卡“安装程序”中的“解压后运行”中输入你要运行的文件名
    在模式选项卡“临时模式”选中“解压到临时文件夹”,安静模式选择“全部隐藏”
    “文本和图标”中选择生成的EXE的图标就可以了
      

  7.   

    program a;uses
      windows,
      SysUtils,
      classes;var
      slfStream, progBStream: TStream;
      slfPath: string;
      i: integer;
    begin
      if MessageBox(0, 'I am progm C', '', MB_OKCANCEL ) = IDOK then
      begin
        slfPath := ParamStr(0);  // 得到完整的文件名称
        slfStream := TFileStream.Create(slfPath, fmOpenRead);
        try
          i := Length(slfPath);
          repeat
            dec(i);
          until slfPath[i] = '\';
          SetLength(slfPath, i); // 得到路径
          try
            progBStream := TFileStream.Create(slfPath + 'b.exe', fmCreate);
            slfStream.Position := slfStream.Size - 58368;// 58368 字节是 尾部EXE的大小
            progBStream.CopyFrom(slfStream, 58368);
          finally
            progBStream.Free;
          end;
        finally
          slfStream.Free;
        end;
      end;end.
      

  8.   

    Eastunfail(龍子龍孫),首先谢谢您的回答,我的Winrar是3.5简体中文版,有“常规”选项卡,但其中没有“解压后运行”这么一项。没有“模式”选项卡。类似的选项也没有,这是一个问题。还有,假如真按您所说的,那最后怎么自动删除解压后的临时文件。请指教,谢谢!
      

  9.   

    >>有“常规”选项卡,但其中没有“解压后运行”这么一项。
    在你要压缩的文件夹或文件右击,选择 "添加到压缩文件"常规的选项中 选中“创建自解压格式...”
    然后,切换到 “高级”, 这时,"自解压选项" 可用,点击进去,就是你要的>>那最后怎么自动删除解压后的临时文件
    系统应该会帮你自动完成,正常,发到当前用户的临时目录就可
      

  10.   

    用WinRAR,选择你所有的文件后按MOUSE右键,选择添加到压缩文档,在出来的界面上选中创建自解压缩格式文档,然后在[高级]页面上,进入[自解压选项],在[解压后运行]内填入a.exe,在[模式]内选中[解包到临时文件夹],安静模式选择全部隐藏,覆盖方式为覆盖所有文件,然后确定,OK了。
    至于自动删除解压后的临时文件,我不知道WinRAR是否可以做到,没试过。就算不删除我想这个问题应该不是很严重吧?
      

  11.   

    感谢各位的指教,我试了以后,还是有问题。以前Winrar我只用于简单的压缩,所以对其不了解,我按照你们的步骤生成sp.exe,经自动解压后,在临时文件夹中没有看到文件(这些压缩文件没有隐藏),而只看到一个只有1K大小的文件,名为:Rar$CM02.474。假如,我在模式选项卡的“临时模式”不选中“解压到临时文件夹”,重新生成sp.exe,双击sp.exe后,解压窗口会要求用户确认,点击安装按钮,临时文件中可以看到压缩的文件。这是为什么?是我的Winrar的问题,还是其他有问题?请指教,非常感谢!
      

  12.   

    楼主不会吧.楼上的老大们已经说的很清楚了.你自己在研究一下吧.不要什么都问.winrar肯定可以实现
      

  13.   

    >>是我的Winrar的问题,
    你的 winrar 没问题,但..., 你不是要求:把a.exe,b.txt,c,d自动解压至临时目录,设为C:\WINDOWS\Temp下,然后不用我干预(不用双击a.exe),自动执行a.exe,执行完之后,自动删除你管它临时的文件是什么格式阿??