📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Bevel1: TBevel;
Button3: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Title := '选择SWF文件';
OpenDialog1.Filter := 'SWF文件|*.swf';
if OpenDialog1.Execute then
Edit1.Text := OpenDialog1.FileName;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
PlayerFile, swfFile: TMemoryStream;
ExeFile: TFileStream;
AppPath: String;
ExeFileName: String;
nInt, nFileSize: Integer;
FVersion: Array [0..2] of byte;
begin
// 获取该转换程序所在路径
AppPath := ExtractFilePath(ParamStr(0));
if AppPath[Length(AppPath)] <> '\' then AppPath := AppPath + '\';
// 首先,将Flash Player文件读入内存
PlayerFile := TMemoryStream.Create; // 创建PlayerFile对象
PlayerFile.LoadFromFile(AppPath + 'Player.exe'); // 读入内存
// 然后新建一个空的EXE文件,保存在同SWF文件想同的路径中
ExeFileName := ChangeFileExt(Edit1.Text, '.exe'); // 将扩展名改为EXE即获得EXE文件路径
ExeFile := TFileStream.Create(ExeFileName + '.exe', fmCreate or fmOpenWrite);
// 此时将要转换的SWF文件读入内存
swfFile := TMemoryStream.Create; // 创建swfFile对象
swfFile.LoadFromFile(Edit1.Text); // 读入内存
// 准备工作已经完成,现在将Player文件内容先写入EXE文件中
ExeFile.CopyFrom(PlayerFile, 0);
// 然后再将SWF文件内容追加到EXE文件中去
ExeFile.CopyFrom(swfFile, 0);
// 大部分工作已经完成,现在剩下将文件大小及相关标志写入到文件尾中
// 设置版本号
FVersion[0] := $56;
FVersion[1] := $34;
FVersion[2] := $12;
ExeFile.Write(FVersion, sizeof(FVersion)); //将版本号写入EXE文件中
nInt:=$FA; // 设置标志
ExeFile.Write(nInt, 1); // 将标志写入EXE文件中
nFileSize := swfFile.Size; // SWF文件大小
ExeFile.Write(nFileSize, 4); // 将SWF文件大小写入EXE文件中
// 释放资源,完成转换工作
ExeFile.Free;
swfFile.Free;
PlayerFile.Free;
ShowMessage('文件已经转换完毕!');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -