AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Selbstständiges Programm in eine (1) EXE integrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Selbstständiges Programm in eine (1) EXE integrieren

Ein Thema von arest · begonnen am 14. Feb 2006 · letzter Beitrag vom 14. Feb 2006
Antwort Antwort
Seite 1 von 2  1 2      
arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#1

Selbstständiges Programm in eine (1) EXE integrieren

  Alt 14. Feb 2006, 14:49
Hallo ihr alle,

ich habe eine Frage: Ich bin gerade dabei ein Programm zu schreiben, was bis jetzt gut läuft. Ich möchte per Knopfdruck (SpeedButton) ein neues Programm starten. Ich möchte aber, dass dieses Programm in meiner bisherigen EXE integriert ist. Das heisst eine *.exe Datei aber zwei Programme. Das Programm was ich per Knopfdruck öffne, soll sich wie ein komplett eigenes Programm steuern lassen, sprich auch in der Taskleiste als eigenes Programm angezeit werden. Ich möchte es definitiv nicht über eine einfache weite Form starten, sprich Form2.ShowModal oder ähnliches, da es ansonsten von meinem bisherigen Programm abhängig ist. Jede Hilfe ist willkommen

Danke schon mal, arest
  Mit Zitat antworten Zitat
mbamler

Registriert seit: 19. Mai 2005
Ort: Hamburg
118 Beiträge
 
Delphi 7 Architect
 
#2

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

  Alt 14. Feb 2006, 14:58
Zitat von arest:
Hallo ihr alle,

ich habe eine Frage: Ich bin gerade dabei ein Programm zu schreiben, was bis jetzt gut läuft. Ich möchte per Knopfdruck (SpeedButton) ein neues Programm starten. Ich möchte aber, dass dieses Programm in meiner bisherigen EXE integriert ist. Das heisst eine *.exe Datei aber zwei Programme. Das Programm was ich per Knopfdruck öffne, soll sich wie ein komplett eigenes Programm steuern lassen, sprich auch in der Taskleiste als eigenes Programm angezeit werden. Ich möchte es definitiv nicht über eine einfache weite Form starten, sprich Form2.ShowModal oder ähnliches, da es ansonsten von meinem bisherigen Programm abhängig ist. Jede Hilfe ist willkommen

Danke schon mal, arest


Starte dein zweites Programm doch einfach aus dem ersten über Shellexecute()
Ansonsten: wenn dir dein Vorhaben gelingt - schlage ich dich für den Informatik-Nobelpreis vor

Gruß
Matthias
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#3

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

  Alt 14. Feb 2006, 15:14
Sind beide Programme von dir? Dann könntest du Parameter verwenden, ansonsten wüßte ich keine Lösung.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#4

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

  Alt 14. Feb 2006, 15:17
Du bist ein Experte... Ich hatte extra gesagt, dass ich nur eine einzige EXE möchte. Das würde meiner Meinung nach dem Prinzip von Shellexecute wiedersprechen. Soweit ich weiss funktioniert das nämlich so:

Shellexecute(Handle, 'open', pchar(ExtractFilePath(Application.ExeName) + 'Pfad\Datei.exe'), nil, nil, SW_ShowNormal); Aber genau das will ich eben nicht, denn ich hatte nicht vor zwei verschiedene EXE-Dateien zu liefern... Es soll eine einzelne sein. Ich würde diese Methode nur als aller letzten Ausweg in erwägung ziehen.

Und ja, beide Programme sind von mir geschrieben, so dass ich von beiden den kompletten Quellcode habe, so dass mir alle Möglichkeiten offen sind!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 14. Feb 2006, 15:20
Die könntest die 2. Exe in einem Art VFS in deine erste einlagern. Dann würde shellexecute funktionieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Sergej

Registriert seit: 12. Jun 2003
Ort: Stuttgart
169 Beiträge
 
#6

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

  Alt 14. Feb 2006, 15:23
Hi. Es ginge so:

Du bindest das zweite Programm als Hier im Forum suchenRessource ein, extrahierst es zur Laufzeit irgendwo hin und startest es per ShellExecute().

Gruß Dani
Ceterum censeo cartaginem esse delendam
  Mit Zitat antworten Zitat
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, 15: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
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#8

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

  Alt 14. Feb 2006, 15:37
wie geht das denn bei PE-Packern (UPX)? Die machen es ja genauso.

Du könntest die 2. Datei aber auch SFX-Mäßig anhängen:

Delphi-Quellcode:
EXE-Datei
{angehängte Daten, werden ignoriert}
EXE-Datei.Länge:integer;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
diComm

Registriert seit: 26. Jan 2005
68 Beiträge
 
#9

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

  Alt 14. Feb 2006, 15:38
Man könnte die zweite Applikation als weitere Forms zu der ersten schreiben und mit parametern beim Starten entweder die erste oder die zweite Applikation starten.
Dann könnte man auch die "zweite" Applikation über shellexecute starten

Shellexecute(Handle, 'open', pchar(ExtractFilePath(Application.ExeName) + 'Pfad\Datei.exe \2'), nil, nil, SW_ShowNormal); oder so ähnlich...
  Mit Zitat antworten Zitat
arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#10

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

  Alt 14. Feb 2006, 15:54
@dicomm, wie geht das denn? ich meine die exe dann ausführen über shellexecute weiss ich ja, aber das mit den parametern usw.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz