Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi exe Datei erstellen (https://www.delphipraxis.net/47749-exe-datei-erstellen.html)

N47R0N 15. Jun 2005 18:47


exe Datei erstellen
 
Ich habe schonmal Programme gesehen in dem man z.B erst ein fenster öffnet und dort seine einstellungen z.B die von seinem Betribssystem dann auf OK drückt und man dann eine auf sein System zugeschnittene software hat .

Dies war ja nur ein Beispiel ich wollte jetzt nur wissen wie man sowas machen kann den einige meiner Programme Funktionieren nur auf Windows XP Home und einige nur auf Professional . wenn ich sowas mit einprogrammieren könnte würde es viel leichter sein , den dann könnte der User einfach selber seine einstellungen angeben .

In der exe müssen nur geringe einstellungen vorgenommen werden z.B der Benutzername des Users oder der Name des Hauptverzeichnisses .

Also wie kann man aus einer Anwendung heraus eine exe Datei erstellen.

Matze 15. Jun 2005 18:48

Re: exe Datei erstellen
 
Da du die Exe kompilieren müsstest, denke ich nicht, dass es so einfach geht, kann mich aber auch irren.

Ansonsten könntest du auch einfach das Betriebssystem auslesen und entsprechend die Pfade etc. anpassen, falls man die version auslesen kann. :?

Bernhard Geyer 15. Jun 2005 19:06

Re: exe Datei erstellen
 
Zitat:

Zitat von N47R0N
Also wie kann man aus einer Anwendung heraus eine exe Datei erstellen.

Ich denke mal die stellen nur angepaßte DLL's zur verfügung.

Aber du kannst sehr einfach in Delphi mittels dynamischer DLL-Laden Funktionen einbinden die z.B. nur unter XP zur verfügung stehen und trotzdem läuft dein Programm auch mit 98. Schau dir einfach mal die Win32API-Units in der Jedi an. Dort wird praktisch jede WinAPI-Funktion dynamisch einbunden. Du mußt nur noch mittels If IsWin2000Up-Abfragen entscheiden ab wann du die Funktion/den Dialog bereitstellen kannst, da das Betriebssystem neu genug ist.

SirThornberry 15. Jun 2005 19:17

Re: exe Datei erstellen
 
@N47R0N: bist du dir sicher dass, das programm angepasst wird und nicht nur die einstellungen in der Registry etc. gespeichert werden?

N47R0N 15. Jun 2005 19:25

Re: exe Datei erstellen
 
es geht ja jetzt nicht darum wie man herausfindet unter welchem betribssystem man die Anwendung startet sondern wollte ich einfach mal wissen wie man solche exe dateien aus einem Programm heraus erstellt .

ODER

Wie man eine bereits existierende exe Datei die gerade nicht löuft Editieren kann und seine Einstellungen so Changen kann.

SirThornberry 15. Jun 2005 19:43

Re: exe Datei erstellen
 
die meisten Programme die wirklich sowas machen patchen die Exe einfach. So ist die original-Exe als Ressource in der Konfigurationsexe enthalten. Je nach dem welche einstellungen vorgenommen werden, wird die Exe (aus der Ressource) an den entsprechenden stellen geändert und anschließend auf die Festplatte geschrieben

N47R0N 15. Jun 2005 19:45

Re: exe Datei erstellen
 
Joa sowas in der richtung wollte ich wissen . Gibt es Anleitungen wie man eine exe Patcht????

SirThornberry 15. Jun 2005 19:51

Re: exe Datei erstellen
 
du musst einfach nur wissen was du ändern willst und diese stelle schreibst du dann um. Also einfach Datei mit TFileStream öffnen (oder TRessourceStream wenns noch als Ressource im Speicher ist) und dann an die entsprechnden Stellen in der exe die neuen Werte schreiben (und die alten damit überschreiben)

N47R0N 15. Jun 2005 20:18

Re: exe Datei erstellen
 
Ja ich danke dir erstmal , nur kannst du mir ein paar tuts zeigen worin erklärt wird wie man sowas anstellt.

Niko 15. Jun 2005 20:23

Re: exe Datei erstellen
 
Hi,

dazu wär's wahrscheinlich nicht schlecht, sich erstmal mit Assembler zu beschäftigen.

Ein recht umfangreiches Tutorial dazu gibt's zum Beispiel hier.

Grüße,

Niko

N47R0N 15. Jun 2005 21:02

Re: exe Datei erstellen
 
Kann man ein Patch nicht auch in Delphi Coden den , ich komme mit Assembler überhaupt nicht klar , werd einfach nicht schlau daraus.

jfheins 15. Jun 2005 21:12

Re: exe Datei erstellen
 
Du möchtest also eine exe, die erst einen Konfigurationsdialog anzeigt, und wenn der ausgeführt wurde, dass Prog ?

Ich würde es so machen: Eine Exe, die prüft, ob bsw. config.ini vorhanden ist. wenn ja, normales Programm. Wenn nicht, stattdessen ein Konfigurationsdialog, der sie erstellt.

Alternativ vll. den Konfigdialog in eine eigene Exe, mit Hauptapp. als Ressource, config.ini wird erstellt, Ress. entpackt ...

Die Exe zu patchen trifft imho nicht ganz den Sinn ... (overkill)

GuenterS 15. Jun 2005 21:14

Re: exe Datei erstellen
 
Zitat:

Zitat von N47R0N
Kann man ein Patch nicht auch in Delphi Coden den , ich komme mit Assembler überhaupt nicht klar , werd einfach nicht schlau daraus.


Sicher kannst den auch in Delphi schreiben. Frag mich jetzt bitte nicht wie Niko auf die Idee kommt, dass dies nur mit Assembler ginge...

Du mußt lediglich die Unterschiede reinschreiben, wie auch schon die Vorredner schrieben. Die Unterschiede findest einfach durch Vergleich der Versionen.

Mir persönlich würde eine Lösung mit verschiedenen DLLs mehr zusagen, aber ich weiß auch nicht wirklich, für was Du sowas überhaupt willst.

N47R0N 15. Jun 2005 21:18

Re: exe Datei erstellen
 
Ich möchte einfach wissen wie man in eine exe schreiben kann???
wie ist mir egal hauptsache man bekommt es mit Delphi hin .

Das vorhin war nur ein Beispiel , ich weis wohl das ich das ganse auch
mit dll's und INI's erledigen kann aber ich möchte nun mal was neues
dazu lehrnen .

dizzy 16. Jun 2005 00:27

Re: exe Datei erstellen
 
Zitat:

Zitat von N47R0N
Ich möchte einfach wissen wie man in eine exe schreiben kann???

Sowohl in diesem, als auch in deinem anderen Thread hast du bereits X mal die Antwort erhalten TFileStream! Nun zeige doch mal etwas Initiative und beschäftige dich wenigstens mit der Onlinehilfe dazu (die hat sogar Beispiele parat). Wenn dann noch konkrete Probleme auftauchen kann man das hier sicherlich diskutieren. Ich habe bisher nicht den Eindruck dass du dich auch nur minimal mit dieser Klasse beschäftigt hast.

SirThornberry 16. Jun 2005 06:28

Re: exe Datei erstellen
 
patchen muss nicht unbedingt viel source sein. du kannst zum beispiel im Programm eine Konstante verwenden welche du durch patchen änderst (einfach die stelle finden wo die konstante in der Exe steht und durch eine neue Konstante überschreiben)

N47R0N 16. Jun 2005 13:02

Re: exe Datei erstellen
 
Najut dann werd ich das mal tuhen

Niko 16. Jun 2005 19:24

Re: exe Datei erstellen
 
Zitat:

Zitat von GuenterS
Frag mich jetzt bitte nicht wie Niko auf die Idee kommt, dass dies nur mit Assembler ginge...

Meine Antwort war vielleicht ein bisschen knapp. Ich wollte damit nicht sagen, dass das Schreiben/Ändern einer exe nur mit Assembler geht. Eine exe-Datei ist ja auch nur eine Datei und wie man die verändert ist ja jetzt schon öfters erwähnt worden.

Wenn man eine exe-Datei verändern will, ist es aber sicher nicht schlecht, wenn man weiß wie eine solche eigentlich aussieht. Wie sonst sollte man herausfinden können, wo man was wie verändern muss, um einen anderen Ablauf zu erhalten? Die Idee mit der Konstanten vereinfacht das natürlich erheblich. (Wobei man das dann wohl wieder erheblich einfacher über eine Konfigurationsdatei umsetzen könnte ...)

Kryoko 17. Jun 2005 07:29

Re: exe Datei erstellen
 
Zum Thema Exe-patchen :

Du kannst ja einfach eine neue Section in die Exe Datei einfügen und dann deinen jmp-Wert ändern.
Ein wenig ASM musst du dafür zwar mitbringen aber hey -

Tut

luckystar85 17. Jun 2005 12:24

Re: exe Datei erstellen
 
Verwenden Programme die Installationen erstellen die gleiche Technik. Dort kann ich ja auch sagen das ich diesen Dailog mit dem Bild und dem Text haben möchte. Haben die auch eine exe als Resource angehängt die sie dann einfach bearbeiten?

Karbrüggen 17. Jun 2005 14:29

Re: exe Datei erstellen
 
Zitat:

Zitat von luckystar85
Verwenden Programme die Installationen erstellen die gleiche Technik. Dort kann ich ja auch sagen das ich diesen Dailog mit dem Bild und dem Text haben möchte. Haben die auch eine exe als Resource angehängt die sie dann einfach bearbeiten?

Möglich, dass die auch einen eigenen Compiler haben...

Ich hab mal spasseshalber ein Setup geschrieben, das Config-Infos in eine INI speichert, die entsprechenden Dateien kopiert, alles zusammen dann komprimiert und an eine EXE anhängt.

Bei der Installation wird dann zuerst der Anhang entpackt, die INI-Datei ausgelesen und dementsprechend verfahren.

Leider hab ich das Prog gelöscht... :(

mfg

Niko 17. Jun 2005 15:34

Re: exe Datei erstellen
 
Hi,

hier gibt's ein Beispiel von Luckie, wie man mit dieser Technik selbstextrahierende Dateien erstellt.

FAlter 17. Jun 2005 17:22

Re: exe Datei erstellen
 
Nein, gibts nicht mehr... ;)


Ich hab da mal im MSDN was gesehen, ein Beispiel, wo eine Dialogressource (KEIN Delphi-Form) von einer EXE zu einer anderen Kopiert wurde. War in C geschrieben.

Ich finds leider nicht mehr, aber da wurden die exe's mit LoadLibrary geladen (!) und dann über irgendeine API-Funktion kopiert.

Wenn du jedoch nicht die Ressourcen, sondern den Code deiner EXE ändern willst, würde ich empfehlen, falls dein Programm wirklich nur unter manchen Systemen läuft, mehrere Exen anzuhängen und dann eine davon in eine Datei zu schreiben (Windowsversion ermitteln :-) oder eine EXE für Win32, eine für .NET 1.0 und eine für .NET 1.1, ...). Für die Styles usw. kannst du dann immer noch noch Ressourcen ändern.

Niko 18. Jun 2005 18:54

Re: exe Datei erstellen
 
Zitat:

Zitat von FAlter
Nein, gibts nicht mehr... ;)

Na ja, wenn er auch unbedingt seine Seiten umstrukturieren muss, ohne auf die Links hier zu achten ... :wink:

Das Beispiel gibt's aber trotzdem noch, hier der aktuelle Link.


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