Hallo!
Ich habe mir ein Programm geschieben und eine *.exe in die Resource gelegt. Diese möchte ich nun ausführen, also habe ich noch einen TFileStream erstellt, der die Datei speichert. Beim schließen des programmes wird sie wieder gelöscht. Das finde ich persönlich jedoch incht sehr elegant und habe daher die Frage, ob es möglich ist die Datei auszuführen, ohne sie Vorher zu speichern...
Hier ein ausschnitt des Codes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| var RStream: TResourceStream; FStream: TFileStream; begin try RStream := TResourceStream.Create(hInstance, 'DATEI', 'RC_DATA'); try FStream := TFileStream.Create('datei.exe', fmCreate or fmShareExclusive); try FStream.CopyFrom(RStream,0); MP_create := true; finally FStream.Free; end; finally RStream.Free; end; except end; windows.winexec(PChar('datei.exe'),1); end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var datei : file; begin if MP_create then begin assignfile(datei, 'datei.exe'); erase(datei); end; end; |