各位高手:
比如:有一个执行文件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。 请教怎么处理?谢谢各位高手!
比如:有一个执行文件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。 请教怎么处理?谢谢各位高手!
简单的话 写一个BAT文件,其中依次拷盘,解压,删除,然后刻录盘时再写一个INF文件,INF文件中自动执行指向BAT文件
但要注意,从光盘中拷到硬盘上的文件,默认属性不可删除,要在BAT中用DOS中的ATTRIB命令去掉只读属性,批处理方可删除
你自己写的,所以A执行的时候,把自己尾巴后的数据单独COPY出来,就是完整的
B.exe
在常规选项卡“安装程序”中的“解压后运行”中输入你要运行的文件名
在模式选项卡“临时模式”选中“解压到临时文件夹”,安静模式选择“全部隐藏”
“文本和图标”中选择生成的EXE的图标就可以了
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.
在你要压缩的文件夹或文件右击,选择 "添加到压缩文件"常规的选项中 选中“创建自解压格式...”
然后,切换到 “高级”, 这时,"自解压选项" 可用,点击进去,就是你要的>>那最后怎么自动删除解压后的临时文件
系统应该会帮你自动完成,正常,发到当前用户的临时目录就可
至于自动删除解压后的临时文件,我不知道WinRAR是否可以做到,没试过。就算不删除我想这个问题应该不是很严重吧?
你的 winrar 没问题,但..., 你不是要求:把a.exe,b.txt,c,d自动解压至临时目录,设为C:\WINDOWS\Temp下,然后不用我干预(不用双击a.exe),自动执行a.exe,执行完之后,自动删除你管它临时的文件是什么格式阿??