線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2637
推到 Plurk!
推到 Facebook!

把一个exe包到另一个exe里

 
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-09 13:57:46 IP:218.17.xxx.xxx 未訂閱
庆祝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,并且能看到它已经跑起来了。
系統時間:2024-04-29 22:30:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!