如何把其他文件合并到一个EXE文件中,并在使用时再释放还原这些文件?(100分)

  • 主题发起人 主题发起人 tomye
  • 开始时间 开始时间
T

tomye

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有10个文件(各种类型的都有)和一个EXE文件,现在想把这10个文件合并到这个
EXE文件中发布,当用户收到这个EXE文件后运行,此EXE文件会自动把打包的10个文件
释放出来,然后再由这个EXE文件处理。就好比一些软件的补丁程序一样。请问大家我该如何
制作?
 
我有一个想法,比较肤浅:
; ;另外建一EXE文件,在其中写代码,功能是把那10个文件分离后再启动你原来哪个
; ;exe文件。
; ;把这10个文件合并(用FileStream),新写的EXE文件另外,也就是说有两个文件一起发布
; ;请参考
 
将你的那10个文件都做成资源放入EXE文件里,执行EXE文件时再释放资源!
 
把其它的文件当成资源合并到Exe里
 
http://go4.163.com/lovejingtao/myres.htm
 
可以自己做一个RC文件,例如 sample.rc ,RC文件其实就是一个资源文件的描述文本,
通过“记事本”程序创建就行了。然后可以输入一些我们要定义的资源,例如:

MEN BITMAP c:/bitmap/men.bitmap
ARJ EXEFILE c:/arj.exe
MOV AVI c:/mov.avi
然后用BRCC32把这个RC文件编译成sample.res(真正的资源文件)。

在Delphi的工程文件中使用 $R 编译指令让Delphi包括资源到EXE文件里面。

{$R sample.res}
这样我们就可以在这个单一的执行文件中调用资源了。举例如下:

EXEFILE:

procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName);
Res.Free;
end;
AVI:

procedure LoadAVI;
begin
{Avi1是一个TAnimate类}
Avi1.ResName:='AVI';
Avi1.Active:=True;
end;
 
哈哈哈,不错,告诉你一个简单的办法,自解压程序哈哈(winzip 8.0)
 
后退
顶部