AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi EXE dynamisch erweitern

Ein Thema von greenmile · begonnen am 3. Aug 2010 · letzter Beitrag vom 4. Aug 2010
Antwort Antwort
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#1

Delphi EXE dynamisch erweitern

  Alt 3. Aug 2010, 16:47
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
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

AW: Delphi EXE dynamisch erweitern

  Alt 3. Aug 2010, 16:53
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
Frederic Kerber
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Delphi EXE dynamisch erweitern

  Alt 3. Aug 2010, 17:00
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi EXE dynamisch erweitern

  Alt 3. Aug 2010, 17:01
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
$2B or not $2B

Geändert von himitsu ( 3. Aug 2010 um 17:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: Delphi EXE dynamisch erweitern

  Alt 4. Aug 2010, 05:52
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.
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Delphi EXE dynamisch erweitern

  Alt 4. Aug 2010, 08:47
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Delphi EXE dynamisch erweitern

  Alt 4. Aug 2010, 09:35
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Delphi EXE dynamisch erweitern

  Alt 4. Aug 2010, 09:48
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.
$2B or not $2B
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Delphi EXE dynamisch erweitern

  Alt 4. Aug 2010, 10:54
PERFEKT! Genau das habe ich gesucht, ist ja abgefahren dass es so eine API gibt

1000 Dank!!!
  Mit Zitat antworten Zitat
Antwort Antwort


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