Converting SWF to EXE
SWF to EXE is not a conversion, actually. The exe file (another name is Projector) consists of an executable player and SWF movie. So "converting" means merging flash movie and player into a single file. It is possible to use Macromedia Player (SAFlashPlayer.exe) as an exe-part and it does not request Flash Player have been installed before.
function SWF2Exe(SourceName, DestName, PlayerName: string): boolean; var RStream, WStream: TFileStream; flag, SwfFileSize: DWord; begin result := false; WStream := TFileStream.Create(DestName, fmCreate); try RStream := TFileStream.Create(PlayerName, fmOpenRead or fmShareDenyWrite); try WStream.CopyFrom(RStream, RStream.Size); finally RStream.Free; end; RStream := TFileStream.Create(SourceName, fmOpenRead or fmShareDenyWrite); try WStream.CopyFrom(RStream, RStream.Size); flag := $FA123456; WStream.Write(flag, 4); SwfFileSize := RStream.Size; WStream.Write(SwfFileSize, 4); result := true; finally RStream.Free; end; finally WStream.Free; end; end; ... Procedure TMyForm.Button1Click(Sender: TObject); begin SWF2Exe('my.swf', 'my.exe', 'c:\Flash MX\Players\SAFlashPlayer.exe'); end;