![]() |
TFilestream - ist sowas möglich?
Hi DP,ler
ich habe im netz einen code gefunden mit dem man in einem Delphi projekt eine resource mit einbindet und diese via TFilestream im eigentlichen Projekt mit dem TMediaPlayer abspielt (mp3). Das ganze Jedoch ohne die resource irgendwo auf der festplatte zu speichern via stream eben. Ist dies auch mit einer exe datei möglich? also das meine resource statt eder mp3 eine exe enthält und diese via stream wiedergegeben bzw von dem programm geöffnet wird? Wäre für vieles nützlich z.b. wenn man ein Grafisches Interface für ein Komamndozeilen programm schreiben möchte. LG Suni Folgenden Code habe ich um meine sound resource via stream abzuspielen
Delphi-Quellcode:
[edit=sakura] [code]->[delphi], liest sich einfach schöner ;) Mfg, sakura[/edit]
procedure TForm1.FormCreate(Sender: TObject);
//begin // if OpenDialog1.Execute then var rStream: TResourceStream; fStream: TFileStream; fname: string; begin {this part extracts the mp3 from exe} fname := ExtractFileDir(Paramstr(0))+'test.mp3'; rStream := TResourceStream.Create(hInstance, 'test', RT_RCDATA) ; try fStream := TFileStream.Create(fname, fmCreate) ; try fStream.CopyFrom(rStream, 0) ; finally fStream.Free; end; finally rStream.Free; end; {this part plays the mp3} MediaPlayer1.Close; MediaPlayer1.FileName:=fname; MediaPlayer1.Open; MediaPlayer1.Play; |
Re: TFilestream - ist sowas möglich?
Du willst eine Exe als Ressource in deine eigentliche Exe packen und dann die Exe aus dem Speicher heraus ausführen? Ja das geht, aber es ist nicht einfach undn ur unter NT und höher, wenn ich mich nicht irre. Quellcode dazu gibt es hier:
![]() |
Re: TFilestream - ist sowas möglich?
Hallo Suni,
Zitat:
Delphi-Quellcode:
Grüße vom marabu
MediaPlayer1.FileName := fname;
MediaPlayer1.Open; MediaPlayer1.Play; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz