Einzelnen Beitrag anzeigen

Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Selbstständiges Programm in eine (1) EXE integrieren

  Alt 14. Feb 2006, 14:31
Du könntest die Zweite Echse an die erste anhängen und bei bedarf extrahieren und starten.

Evt. hilft dir dabei folgender Code weiter:

Delphi-Quellcode:
procedure Join(Main_FileName, Hidden_Filename : string);
var
  MainFile : TFileStream;
  HiddenFile : TFileStream;
  SizeOfFile : Cardinal;
  SearchWord : string[10];
begin
  MainFile := TFileStream.Create(Main_FileName, fmOpenReadWrite or fmShareDenyWrite);
  try
    SizeOfFile := MainFile.Size;
    HiddenFile := TFileStream.Create(Hidden_Filename, fmOpenRead or fmShareDenyNone);
    try
      MainFile.Seek(0, soFromEnd);
      MainFile.CopyFrom(HiddenFile, 0);
      MainFile.Seek(0, soFromEnd);
    finally
     HiddenFile.Free;
    end;
    SearchWord := IntToStr(SizeOfFile) + #0;
    MainFile.Seek(0, soFromEnd);
    MainFile.WriteBuffer(SearchWord, SizeOf(SearchWord));
  finally
   MainFile.Free;
  end;
end;

procedure Split(Main_FileName, NewFromMain_Filename : string);
var
  MainFile : TFileStream;
  SplitFile : TFileStream;
  HelpStr : string[10];
  GetSize : integer;
begin
  MainFile := TFileStream.create(Main_FileName, fmOpenReadWrite or fmShareDenyWrite);
  try
    SplitFile := TFileStream.Create(NewFromMain_Filename, fmCreate or fmShareDenyNone);
    try
      MainFile.Position := MainFile.Size - 11;
      MainFile.Read(HelpStr, 10);
      GetSize := StrToInt(HelpStr);
      MainFile.Position := GetSize;
      SplitFile.CopyFrom(MainFile, MainFile.Size-GetSize);
      SplitFile.Size := SplitFile.Size - 11;
      MainFile.Size := GetSize;
    finally
     SplitFile.Free;
    end;
  finally
   MainFile.Free;
  end;
end;
EDIT: Wurde zwar grad schon erwähnt aber ich hänge das dennoch mal so an
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat