2010年11月3日星期三

在 delphi的exe文件中嵌入另外一个exe文件(转)

摘自:http://hi.baidu.com/ilovesafety/blog/item/99213e3eb2bb80f5838b13f3.html

原理:

     把需要包含的exe放入到进资源文件中,和原来的程序一起编译成一个exe文件,在程序第一次运行时释放出这个exe,然后调用这个exe文件。

步骤:

     1、创建rc文件。可以用任意文本编辑器来写。文件格式为:"资源名 资源类型 文件名"。

           对于资源类型,如果是exe文件,应该是EXEFILE, 如果是二进制文件,则是RCDATA。  

           这里创建一个文件float.rc:

代码

      2、将这个rc文件转换成res文件。

         复制float.rc到DELPHI安装目录里的bin文件夹, 执行brcc32 float.rc,生成float.res

     3、将这个res文件包含至工程文件中。

代码

1{$R    float.res}

    4、提取RES中的float.EXE。

代码
1procedure TFormMain.IEEE7541Click(Sender: TObject);
2
3  var
4     t : TResourceStream;
5  begin
6
7  if FileExists('float.exe') then
8     WinExec('float.exe',Sw_normal)
9  else
10    begin
11       try
12         t := TResourceStream.Create(HInstance,'AEXE','EXEFILE'); //其中HInstance为一个句柄常量;rwww为资源名;exefile为资源类型
13        t.SaveToFile('float.exe');
14       finally
15         t.free;
16      end;
17       WinExec('float.exe',Sw_normal);
18    end;
19  end;

没有评论: