Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi EXE in Anwendung einbinden (https://www.delphipraxis.net/94004-exe-anwendung-einbinden.html)

dtrace 14. Jun 2007 15:23


EXE in Anwendung einbinden
 
Hallo,
ich möchte in meiner Anwendung eine andere EXE (SHELL Anwendung) einbinden.
Ich weiß dass man diese EXE als Ressource oder als Stream an die Exe anhängen kann, shon oft genug gemacht :wink:
Es geht aber darum, dass ich z. B. den UPX Packer (EXE Packer) in meiine Anwendung einbinden möchte und diese EXE dann starte mit Parameter etc.
Dabei soll die eingebundene EXE nicht aus meiner Anwenung extrahiert werden, so dass ich dann zwei EXE Datei habe.
Ich habe von dem Verfahren "LINKEN" gehört womit das möglich wäre, finde aber in google keine Informationen die mir weiterhelfen :cry:

Habt Ihr eine Idee?

SirThornberry 14. Jun 2007 15:32

Re: EXE in Anwendung einbinden
 
du willst sozusagen die Exe die du angehangen hast direkt aus dem Speicher starten? unter welchen Betriebssystem soll das ganze laufen? welchen Sinn hat das ganze? Wäre es da nicht sinnvoller das zweite Programm gleich Quelltextmäßig in deins zu integrieren?

dtrace 14. Jun 2007 15:36

Re: EXE in Anwendung einbinden
 
Genau so...aus dem Speicher :wink:
also dass ganze soll ab Windows 98 funktionieren...
Es handelt sich um eine Fremdanwendung (UPX Packer)... die Consolengesteuert angesprochen wird.
Diese Anwendung will ich in meine Anwendung integrieren.

CCRDude 14. Jun 2007 15:40

Re: EXE in Anwendung einbinden
 
Ich bezweifle das UPX in Delphi geschrieben ist :D insofern wäre ein "quelltextmässiges Einbinden" eher nicht so einfach.
Da das Programm dann aber (bei festem Einlinken/als Resource) eh auch GPL sein müsste, sprich Du gar nicht vermeiden kannst, daß der Benutzer sowieso erfährt, daß es UPX und nicht von Dir ist, macht es doch keinen echten Unterschied mehr, ob upx.exe nicht doch daneben im gleichen Ordner liegt, oder?

SirThornberry 14. Jun 2007 15:40

Re: EXE in Anwendung einbinden
 
oh, unter win98 war das meines wissens noch nicht möglich. Letzendlich läuft es auf folgende Vorgehensweise hinaus. Du musst eine andere Anwendung (z.B.: notepad.exe) starten aber suspended. Dann den Speicher des Prozesses zum schreiben öffnen und deine Anwendung an die stelle plazieren. Anschließend den Prozess weiterlaufen lassen. Deine Anwendung würde dann also als Notepad.exe laufen. Ganz ohne Fremdprozess geht es nicht. (kannst es ja aber auch als deine eigene Exe laufen lassen, ist dann nur verwirrend für leute welchen in den Taskmanager schauen wenn dein Programm 2 mal auftaucht).
Was hindert dich daran upx zu extrahieren? ich glaub das entspricht auch am ehesten den Nutzungsbedingungen.

dtrace 14. Jun 2007 15:47

Re: EXE in Anwendung einbinden
 
Es geht allgemein um das Verfahren wie man dieses Problem löst.
Ihr habt recht, es wäre egal ob die EXE daneben ist oder auch nicht... aber ich habe schon viele GUI gesteuerte UPX Anwendungen gesehen die so funktioniert wie ich das auch lösen möchte. Das Programm ist ja eh für private Zwecke...

Ich habe das aber leider noch nicht ganz verstanden wie ich das lösen kann...
ein kleines Tutorial wäre sehr hilfreich ... für andere User sicherlich auch :lol:

DP-Maintenance 14. Jun 2007 15:52

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Windows API / MS.NET Framework API" verschoben.

SirThornberry 14. Jun 2007 15:54

Re: EXE in Anwendung einbinden
 
bist du dir sicher das andere Programme das so machen? woher weißt du das diese Programme die upx-exe nicht einfach in den temp-ordner etc. verfrachten für die Zeit des gebrauchs? Ich kenn es eigentlich immer so das die anderen Anwendungen in ein verzeichnis extrahiert werden und dann der Standardoutput per pipes abgefangen wird.

dtrace 14. Jun 2007 15:58

Re: EXE in Anwendung einbinden
 
:? hmmm...
jetzt wo du es sagst...könnte sein dass die das wirklich so machen...und mir das immer nur so vorkam :roll: was versteht man unter "Pipes abgefangen" ??

SirThornberry 14. Jun 2007 16:02

Re: EXE in Anwendung einbinden
 
wenn du ein consolenprogramm "normal" ausführst siehst du ein Dos-fenster. Wenn du über CreateProcess das ganze startest besteht die Möglichkeit Stdin, StdOut und ErrOut auf eigene Pipes umzulenken so das man eben zum Beispiel das Ausgabefenster nicht sieht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr.
Seite 1 von 2  1 2      

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