把一个exe包到另一个exe里 |
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
庆祝KTop换新线路: 把一个文件做成资源文件,编译进一个可执行程序文件里的方法: 首先,用DELPHI随便做一个可执行的程序。New一个Project,取名字为test,保存。在其Form1上放一个Label,Caption为"My test Program",Build它,Run它。这样,我们得到一个文件: test.exe 然后,使用文本编辑器(最简单的就是WINDOWS带的"记事本",我更喜欢用UE),编辑一段文字: MYDEMO myResFile C:\test\ResDemo.exe 然后保存这个文本文件为:MyRes.rc 然后,进入Command Line(DOS窗口),使用DELPHI带来的 brcc32.exe 来编译这个RC文件为RES文件。brcc32.exe在 Delphi/Bin/这个文件夹里。在COMMAND LINE里输入这个命令就完成编译:brcc32 MyRes.rc,编译后会在当前目录下生成:MyRes.Res 这个资源文件。 现在,另外New一个Project,保存为TestRes.dpr。在Unit1的" implementation {$R *.dfm} "的下面增加对刚才做的资源文件的引用:"{$R MyRes.Res} ",加了这一句后,编译出来的 TestRes.exe 里会包含 MyRes.Res的内容。而MyRes.Res里则包含了test.exe。 现在,我们要在运行的时候把test.exe从TestRes.exe里取出来,使用以下程序: procedure TForm1.Button1Click(Sender: TObject);
var
ResStream:TResourceStream;
S:String;
begin
S:=ExtractFilePath(Application.ExeName) 'test.exe';
ResStream:=TResourceStream.Create(hinstance,'MYDEMO','MyRESFile');
try
ResStream.Position:=0;
ResStream.SaveToFile(S);
WinExec(PChar(S),SW_SHOW);
finally
ResStream.Free;
end;
end; 上面那段程序使用 TResourceStream 来取到保存在TestRes.exe这个程序自己内部的资源,并将它保存为一个Disk File,并执行它。
当你点了这个Button1,就会看到在TestRes.exe所在的文件夹里产生了一个名字叫test.exe的File,并且能看到它已经跑起来了。
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |