本文整理自网络,侵删。
制作资源文件并释放运行
TEST EXEFILE TEST.exe 把这段文字复制到个记事本里保存为TEST.rc
TEST为在程序里调用资源文件的名字 就是给资源文件起个名字在程序里调用
EXEFILE 为文件类型 意思是exe文件
TEST.EXE 为你要做成资源的exe文件
在写个批处理文件(BuildRes.bat)内容为
Brcc32 TEST.rc
第一行是你delphi的安装目录下的bin目录下的Brcc32.exe的位置 因为要用brcc32.exe编译
第二行的TEST.rc为 你刚才写的rc文件的文件名
把以上两个文件和你要做成资源文件的exe放在一个目录下 执行批处理
这时候会多出 TEST.res
我们到delphi中新建个application 往上面放上一个按钮 点那个按钮的时候释放资源文件
并且运行程序 要把TEST.res 放到工程目录下 就是你这个程序保存的地方!
代码如下
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons,shellapi; //shellapi引用 api函数来运行程序
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R 'TEST.RES'} //这里调用得写上你的RES文件的名字
procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end; //这个方法意思是释放资源文件 有三个参数
//一个资源类型 2 资源名字 生成资源的名字
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ExtractRes('EXEFILE', 'TEST', 'TEST.exe'); //这里调用函数释放资源
showmessage('释放成功'); // 弹出个对话框 可以不写 没啥用 只是提示一下
sleep(1000); //让程序 休眠1秒
ShellExecute(0, nil, 'TEST.exe',nil, nil,sw_show); //运行程序 带的四个参数不用管他
//如果要是想隐藏运行把最后那个参数改为 SW_HIDE 就OK了
end;
end.
相关阅读 >>
Delphi access数据库密码的mdb的访问报错“无法启动应用程序,或是已被其他用户已独占方式打开”
更多相关阅读请进入《Delphi》频道 >>