Delphi - 制作一个自解压 MIDI 文件的 Delphi 程序
Delphi - Make a Delphi program that Self-extract a MIDI file
我正在 Delphi 7 中编写程序,我想在背景中为 运行 放一段音乐。所以,我在 .MIDI 中创作了一首名为 Song.MID 的歌曲,现在我想把我的 Delphi 程序自解压(SFX)这首歌并执行,在程序结束时删除它。我认为这就像用十六进制写的一样。我该怎么做?
新建一个文本文件,写入:MIDI RCDATA 1.mid,保存文本文件为MID.rc
然后新建一个文本文件,写入:brcc32 mid.rc,保存为"brcc.bat"
运行brcc.bat,将*.rc文件转换为*.res
将 MediaPlayer 移动到您的表单(媒体播放器位于 "System" 选项卡上)。
现在将此代码复制到您的项目中:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer;
type
TForm1 = class(TForm)
mplayer: TMediaPlayer;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R mid.res}
procedure TForm1.FormCreate(Sender: TObject);
var
stream:tresourcestream;
tmp:string;
begin
try
stream:=tresourcestream.Create(hinstance,'MIDI',RT_RCDATA);
try
setlength(tmp,300);
setlength(tmp,GetTempPath(300,pchar(tmp)));
tmp:=tmp+inttostr(hinstance)+'.mid';
stream.SaveToFile(tmp);
finally
stream.free;
end;
mplayer.FileName:=tmp;
mplayer.Open;
mplayer.Play;
except
end;
end;
end.
这是最简单的示例。因此,注册机使用一种特殊的声音格式 - *.XM,该文件从资源中读入内存并使用 FMOD 等库播放(在互联网上阅读更多内容)
我正在 Delphi 7 中编写程序,我想在背景中为 运行 放一段音乐。所以,我在 .MIDI 中创作了一首名为 Song.MID 的歌曲,现在我想把我的 Delphi 程序自解压(SFX)这首歌并执行,在程序结束时删除它。我认为这就像用十六进制写的一样。我该怎么做?
新建一个文本文件,写入:MIDI RCDATA 1.mid,保存文本文件为MID.rc 然后新建一个文本文件,写入:brcc32 mid.rc,保存为"brcc.bat"
运行brcc.bat,将*.rc文件转换为*.res 将 MediaPlayer 移动到您的表单(媒体播放器位于 "System" 选项卡上)。 现在将此代码复制到您的项目中:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer;
type
TForm1 = class(TForm)
mplayer: TMediaPlayer;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R mid.res}
procedure TForm1.FormCreate(Sender: TObject);
var
stream:tresourcestream;
tmp:string;
begin
try
stream:=tresourcestream.Create(hinstance,'MIDI',RT_RCDATA);
try
setlength(tmp,300);
setlength(tmp,GetTempPath(300,pchar(tmp)));
tmp:=tmp+inttostr(hinstance)+'.mid';
stream.SaveToFile(tmp);
finally
stream.free;
end;
mplayer.FileName:=tmp;
mplayer.Open;
mplayer.Play;
except
end;
end;
end.
这是最简单的示例。因此,注册机使用一种特殊的声音格式 - *.XM,该文件从资源中读入内存并使用 FMOD 等库播放(在互联网上阅读更多内容)