Delphi-PRAXiS

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 dynamisch erweitern (https://www.delphipraxis.net/153451-delphi-exe-dynamisch-erweitern.html)

greenmile 3. Aug 2010 15:47

Delphi EXE dynamisch erweitern
 
Hallo,

ich habe leider kein passendes Forum gefunden, deshalb poste ich mal hier. Sorry falls das falsch ist.

Ich möchte einen Fileviewer schreiben, der RTF, TXT Dateien etc. anzeigt. Das an sich ist ja kein Thema, jetzt möchte ich jedoch, dass der User eine RTF, TXT o.ä. Datei mit der EXE verbinden kann, damit er am Ende nur noch eine Datei hat. Im Prinzip so etwas wie eine Datei als Ressource einbinden, nur halt so, dass der User kein Delphi installiert haben muss.

Weiß jemand, wie ich hier vorgehen muss oder gibt es womöglich schon einen Source im Netz? Einfach zwei Dateien zusammenkopieren funktioniert ja nicht.

Gruß,
Paul

fkerber 3. Aug 2010 15:53

AW: Delphi EXE dynamisch erweitern
 
Hi!

Schau mal hier:
http://www.swissdelphicenter.ch/de/showcode.php?id=815

Müsste man aber mal testen, ob es geht, an sich selbst, während man läuft, etwas anzuhängen?!


Liebe Grüße,
Frederic

greenmile 3. Aug 2010 16:00

AW: Delphi EXE dynamisch erweitern
 
Super, fast perfekt. Einziges Problem ist jetzt nur noch, dass im Beispiel die 'Test.exe' den Anhang nicht selbst laden kann. Quasi "Ich lade, was mir attached wurde". Any ideas?

himitsu 3. Aug 2010 16:01

AW: Delphi EXE dynamisch erweitern
 
Die eigene EXE wärend des Laufens zu ändern ist (ohne schmutzige Tricks) nicht möglich ... siehe dazu die ganzen Updater, mit ihren Selbstupdateversuchen hier im Forum.

PS: Eine EXE zu verändern ist auch nicht unbedingt optimal/empfehlenswert.
Zumindestens nicht, wenn es oft passieren soll und/oder vorallem dann nicht, wenn dieses nicht auf dem eigenem Rechner, sondern beim "Kunden" geschehen soll,
da bei sowas zurecht viele Virenscanner anschlagen werden
und man im Programme-Verzeichnis eigentlich keine Schreibrechte mehr hat.

[edit]
Laden was in sich selber Steckt ist immer möglich.
(nur das Speichern macht einige Probleme)

Wobei ich nicht den verlinkten Tipp verwenden würde (hierauf reagieren auch einige Virenscanner allergisch)
MSDN-Library durchsuchenUpdateResource/Hier im Forum suchenUpdateResource wäre besser

MarcoWarm 4. Aug 2010 04:52

AW: Delphi EXE dynamisch erweitern
 
Im Endeffekt möchtest du ja dem Programm eine Resource hinzufügen/austauschen.

Da ist im Grunde nichts schlimmes dabei (das macht so mancher Resourcen Editor).
Ich würde dir einen Besuch bei Colin Wilsons Website empfehlen.
Dort gibts den Quelltext zum XN Resource Editor (und der kann sowas)
Die Komponenten dafür sind auch frei verfügbar. Das geht wahrscheinlich nicht in einer laufenden Anwendung, ist aber ein
sehr sauberer Ansatz.

Bernhard Geyer 4. Aug 2010 07:47

AW: Delphi EXE dynamisch erweitern
 
Deine Anforderung hört sich eher danach an das du ein Plugin-System brauchst. Jede Plugin-DLL ist für eine bestimmten Dateityp zuständig.
Hierrüber wie die Funktionalität der Exe erweitert ohne die Nachteile einer Exe-Änderung zu benötigen.

greenmile 4. Aug 2010 08:35

AW: Delphi EXE dynamisch erweitern
 
Danke für die vielen Anworten. Ich möchte allerdings nicht, dass sich eine EXE selbst verändert, ich stelle es mir so vor: Eine EXE fragt nach einer Text Datei und fügt dann eine zweite EXE (die nicht gestartet ist) und die gewählte Text Datei zusammen. Diese zweite EXE merkt dann beim starten, dass was angehängt ist, entpackt das (oder liest es aus dem Speicher, egal) und zeigt das an. Quasi wie ein SFX von WinZip. Kann man eine Delphi EXE und eine Text Datei normal zusammenkopieren oder dreht dann die Runtime Info ab? Ist das eigentliche Ende des Programmcodes irgendwie markiert, sodass die EXE die TXT Daten nicht automatisch mit einliest?

himitsu 4. Aug 2010 08:48

AW: Delphi EXE dynamisch erweitern
 
Bei Google suchenUpdateResource

Füge einfach eine Text-Resource in die EXE ein.

Beim Programmstart dieser schaut sie nach, ob es diese Resource (also am Besten der Resource einen schönen Namen verpassen) existiert nd wenn, dann ließt man diese aus und zeigt es an.

greenmile 4. Aug 2010 09:54

AW: Delphi EXE dynamisch erweitern
 
PERFEKT! Genau das habe ich gesucht, ist ja abgefahren dass es so eine API gibt :)

1000 Dank!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 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