Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi .exe datei im Programm erstellen (https://www.delphipraxis.net/145631-exe-datei-im-programm-erstellen.html)

-Phantom- 5. Jan 2010 15:57


.exe datei im Programm erstellen
 
Tag auch,

Folgendes Problem: Ich möchte das mein Programm eine .exe Datei erstellt. Also Programm funktioniert so , mann kann aus suchen wie das Programm aussehen soll z.B Größe , Wie mache ich das nun das mein Programm mir eine .exe Datei anlegt, also ein neues Programm und dieses Programm soll dann die gewünscht Größe haben.

himitsu 5. Jan 2010 15:59

Re: .exe datei im Programm erstellen
 
Größe?

tja, um eine "richtige" EXE zu erstellen, brauchst du einen Compiler.

Matze 5. Jan 2010 15:59

Re: .exe datei im Programm erstellen
 
Hallo,

etwas sehr ähnliches wurde kürzlich erst gefragt und bietet sich auch für deine Anwendung an: Exe-Datei mit Einstellungen builden.

Grüße, Matze

Edit: Ich ging nun von Einstellungen wie der Fenstergröße aus.

Jens Hartmann 5. Jan 2010 16:00

Re: .exe datei im Programm erstellen
 
Hallo,

was hast Du denn genau vor. Normalerweise kann man diese Einstellung in irgendeiner gewünschten Art doch einlesen.

z.B. INI, DB oder so.

Gruß Jens

-Phantom- 5. Jan 2010 16:05

Re: .exe datei im Programm erstellen
 
Puhh ganz schön schnelle Antworten.

Also im meinen Programm kann man sich aus suchen wie das Programm aussehen soll und welche Funktionen das Programm haben soll.
Man wählt z.B das ein Button im dem Programm da sein soll der eine Message macht mit "Hallo welt".

@ himitsu
Größe war nur ein Beispiel

PhilmacFLy 5. Jan 2010 16:07

Re: .exe datei im Programm erstellen
 
Die Frage die sich mir gerade stellt, soll Programm 1 ein Programm 2 erzeugen mit den in Programm 1 ausgewähltne Eigenschaften, oder soll Programm 1 sich in die Weise ändern wie du es vorher angibst?

-Phantom- 5. Jan 2010 16:09

Re: .exe datei im Programm erstellen
 
das ist hier ist richtig:
Zitat:

Die Frage die sich mir gerade stellt, soll Programm 1 ein Programm 2 erzeugen mit den in Programm 1 ausgewähltne Eigenschaften

PhilmacFLy 5. Jan 2010 16:10

Re: .exe datei im Programm erstellen
 
Dann brauchst du wie himitsu schon sagte einen richtigen Compiler, oder du entwickelst eine Interpretersprache die das macht, und dann von deinem Programm Interpretiert wird.

Matze 5. Jan 2010 16:10

Re: .exe datei im Programm erstellen
 
Dann reicht es, wie im verlinkten Thema erwähnt, eine Einstellungsdatei mitzuliefern, die das Verhalten des Programms beeinflusst. Die Datei liest zu beim Programmstart ein und änderst das Aussehen, die Funktionen etc. entsprechend der eingelesenen Daten.
Soll es nur eine Datei sein, die du ausliefern musst, kannst du die Daten über Ressourcen einbinden und von der ersten Exe aus verändert (steht alles im verlinkten Thema).

-Phantom- 5. Jan 2010 16:13

Re: .exe datei im Programm erstellen
 
@ Matze ich glaube du hast meine Frage nicht ganz verstanden, ich möchte ja mit Programm 1 , ein Programm 2 erstellen , dass Programm 1 soll aber so bleiben wie es ist! Ich denke ich muss das dann mit dem Compiler machen.

schöni 5. Jan 2010 16:14

Re: .exe datei im Programm erstellen
 
Zitat:

Zitat von -Phantom-
Puhh ganz schön schnelle Antworten.

Also im meinen Programm kann man sich aus suchen wie das Programm aussehen soll und welche Funktionen das Programm haben soll.
Man wählt z.B das ein Button im dem Programm da sein soll der eine Message macht mit "Hallo welt".

@ himitsu
Größe war nur ein Beispiel

Das sieht mir sehr nach einer Objektablage aus, in die vorgefertigte Progemmodule rein gepackt werden. Dann wählt der Programmierer ein Programmodul aus und übersetzt es.

Somit wäre das Projekt eine integrierte Entwicklungsumgebung mit eingebauter Objektablage, Form-Designer und aufrufbarem Compiler?

-Phantom- 5. Jan 2010 16:17

Re: .exe datei im Programm erstellen
 
Wie mache ich das den mit einem Compiler? wo bekomme ich den her? muss ich den selber schreiben?

implementation 5. Jan 2010 16:21

Re: .exe datei im Programm erstellen
 
Du kannst einen eigenen schreiben. Du kannst aber auch einen bereits existierenden Compiler nutzen, bspw. FreePascal. Der ist frei verwendbar und du kannst ihn ohne irgendwelchen rechtlichen Bedenken nutzen.
Die aktuelle Version ist 2.4.0. Du kannst ihn als externe Executable mitliefern und aufrufen.

-Phantom- 5. Jan 2010 16:23

Re: .exe datei im Programm erstellen
 
Oke danke für die Antworten ich werde es mal mit dem Compilter versuchen , wenn weitere Fragen auftauchen werde ich mich melden.

Matze 5. Jan 2010 16:24

Re: .exe datei im Programm erstellen
 
Zitat:

Zitat von -Phantom-
@ Matze ich glaube du hast meine Frage nicht ganz verstanden, ich möchte ja mit Programm 1 , ein Programm 2 erstellen , dass Programm 1 soll aber so bleiben wie es ist! Ich denke ich muss das dann mit dem Compiler machen.

Nein. Mit dem Compiler musst du übrigens sämtliche Quelltexte in die Exe integrieren. Damit macht du die Anwendung quasi Open-Source, da sich der Quelltext problemlos auslesen lässt. Und ein Kompiliervorgang braucht immer seine zeit, kann zu Fehlern führen etc. pp.

Lies doch mal das verlinkte Thema. Ich bin der Meinung, das ist genau das, was du machen möchtest:
Du hast eine Exe-Datei und möchtest modifizierte Kopien davon erstellen, richtig? Ich habe nirgendwo geschrieben, dass du deine gestartete Exe verändern sollst. Das ginge meines Wissens gar nicht ohne weiteres.

Dann geh doch, wie beschrieben her, erstelle aus deiner Exe eine Kopie der selben und ändere die Ressourcen in der angelegten Kopie. Dann hast du eine Exe erzeugt (dupliziert) und Werte darin verändert.

-Phantom- 5. Jan 2010 16:27

Re: .exe datei im Programm erstellen
 
Zitat:

Du hast eine Exe-Datei und möchtest modifizierte Kopien davon erstellen, richtig?
Eben nicht ! Das Programm , was entstehen soll,hat nichts mit dem ersten Programm zu tun.

Matze 5. Jan 2010 16:28

Re: .exe datei im Programm erstellen
 
Achso! :wall: Dann habe ich dich tatsächlich falsch verstanden, Sorry.

himitsu 5. Jan 2010 16:34

Re: .exe datei im Programm erstellen
 
wie gesagt:

entweder du baust dir einen Interpreter (gibt auch schon ein/zwei fertige in der DP, welche praktisch Pascal Code verstehen) und mußt aber das nötige Verhalten schon in der EXE integrieren, welches dann über das "Script" ausgeführt wird,

oder du mußt einen Compiler mitliefern, welcher die EXE dann aus einem QuellCode, welchen dein Programm erzeugt, erstellt.

-Phantom- 5. Jan 2010 16:35

Re: .exe datei im Programm erstellen
 
Nuja , weil ich noch kein geringsten Schimmer habe wie das das mit dem Compiler an stellen soll muss ich mich damit ein bisschen mit beschäftigen.

-Phantom- 5. Jan 2010 16:43

Re: .exe datei im Programm erstellen
 
Mh... finde nichts darüber , wisst ihr wo man das "lernen" kann wie man mit eimen Compiler eine .exe datei erstellt.

implementation 5. Jan 2010 16:50

Re: .exe datei im Programm erstellen
 
Du musst den Compiler einfach nur aufrufen: MSDN-Library durchsuchenShellExecute

Klaus01 5. Jan 2010 16:51

Re: .exe datei im Programm erstellen
 
.. da Du ja wahrscheinlich nicht den originalen Delphi Compiler Deiner
Anwendung mitgeben darst - und einen Compiler zu entwickeln wohl nicht
das einfachste ist was es zu planen und codieren gibt, würde
ich mich nach einem alternativen gangbaren Weg umschauen.

Stichwort: PascalScript

Grüße
Klaus

implementation 5. Jan 2010 16:52

Re: .exe datei im Programm erstellen
 
... oder wie erwähnt FreePascal

-Phantom- 5. Jan 2010 16:56

Re: .exe datei im Programm erstellen
 
ja habe mir nun Free Pascal runtergeladen und Installiert, was nun? Habe Tausende Ordner welche datei ist der Compiler?

implementation 5. Jan 2010 16:57

Re: .exe datei im Programm erstellen
 
%PFAD%/bin/i386-win32/ppc386.exe
bzw. (bei 64bit-FPC)
%PFAD%/bin/i386-win32/ppcrossx64.exe

-Phantom- 5. Jan 2010 16:58

Re: .exe datei im Programm erstellen
 
danke das wollte ich wissen...

-Phantom- 5. Jan 2010 17:04

Re: .exe datei im Programm erstellen
 
@ implementation
Wie sage ich den Compiler das er eine .exe erstellen soll?

argonix 5. Jan 2010 17:07

Re: .exe datei im Programm erstellen
 
Der FPC braucht aber noch eine Menge anderer Dateien, insbesondere die vorkompilierten PPUs, um funktionieren zu können.
Kannst du vielleicht kurz erklären, was du ganz konkret machen möchtest? Die Compilerlösung ist eventuell ein Schuss mit Kanonen auf Ameisen.
Du musst - wie schon vorher einige erwähnten - zudem den Cod deiner Anwendung beilegen und den kompletten Freepascal-Compiler wahrscheinlich sogar inklusive Lazarus (für GUIs) dem Projekt beilegen. Das Teil wird dann am Ende bestimmt über 150MB groß.

implementation 5. Jan 2010 17:13

Re: .exe datei im Programm erstellen
 
Erst einmal reicht für die ersten Schritte der reine Compiler (+RTL+FCL, aber die sind schon dabei)
Aufruf:
Code:
...\ppc386 "<DATEIPFAD>" [-Fu<WeitereUnitpfade>] [-Fo<WeitereObjectPfade>]
Und dann kompiliert FPC dir aus dem Programmcode eine Executable.
Willst du was grafisches, solltest du dich mit nonVCL-Entwicklung beschäftigen oder die LCL beilegen.
Im erstgenannten Fall könntest du auch eine eigene Komponentenbibliothek (also so was wie VCL, LCL, WTL und MFC). Schwierig ist das nicht, habe ich auch schon gemacht. :mrgreen:

-Phantom- 5. Jan 2010 17:13

Re: .exe datei im Programm erstellen
 
Nun ja ich weiß es nicht nicht genau , ich wollte bloß mit einem Programm ein neues Programm erstellen sozusagen Delphi in 10000 vereinfachter form. Ich dachte mir ich mache so ein eigenen Programm Ersteller mit dem man auswählen kann was der können soll und wie er aus sehen soll.

-Phantom- 5. Jan 2010 17:17

Re: .exe datei im Programm erstellen
 
Zitat:

rst einmal reicht für die ersten Schritte der reine Compiler (+RTL+FCL, aber die sind schon dabei)
Aufruf:
Code: markieren
...\ppc386 "<DATEIPFAD>" [-Fu<WeitereUnitpfade>] [-Fo<WeitereObjectPfade>]

Und dann kompiliert FPC dir aus dem Programmcode eine Executable.
Wenn ich nun ganz ehrlich bin : Ich versteht NICHTS ...
von [-Fu<WeitereUnitpfade>] habe ich noch nie was gehört von [-Fo<WeitereObjectPfade>] auch nicht.

Mithrandir 5. Jan 2010 17:19

Re: .exe datei im Programm erstellen
 
Dann wäre JETZT der perfekte Zeitpunkt, endlich mal einen Blick ins FreePascal-Wiki zu werfen. ;)

implementation 5. Jan 2010 17:23

Re: .exe datei im Programm erstellen
 
Angenommen, dein Quelltext liegt in "C:\Programm.pas".
Dieses Programm benutzt noch einige Units, die alle im Verzeichnis "C:\Units" liegen.
Dann lautet der Aufruf:
Code:
...\ppc386.exe "C:\Programm.pas" -FuC:\Units
Wenn du jetzt noch in "C:\NochmehrUnits" schon einige vorkompilierte Units (PPU-Dateien) liegen hast, lautet der Aufruf so:
Code:
...\ppc386.exe "C:\Programm.pas" -FuC:\Units -FoC:\NochmehrUnits

-Phantom- 5. Jan 2010 17:26

Re: .exe datei im Programm erstellen
 
was ist ...? shellexecute?

implementation 5. Jan 2010 17:29

Re: .exe datei im Programm erstellen
 
Damit führst du Programme aus.
Siehe auch:
MSDN-Library durchsuchenShellExecute
Delphi-Referenz durchsuchenShellExecute
Platform SDK usw.

-Phantom- 5. Jan 2010 17:29

Re: .exe datei im Programm erstellen
 
also
Delphi-Quellcode:
uses shellapi;


shellExecute(0,
        Nil,
        PChar('C:\freepascal\bin\i386-win32\ppc386.exe' ' C:\Programm.pas' -FuC:\Units),
        Pchar('-Parameter'),
        Pchar('C:\StartDir'),
        SW_NORMAL);

implementation 5. Jan 2010 17:31

Re: .exe datei im Programm erstellen
 
Worüber denn nicht?

Mithrandir 5. Jan 2010 17:31

Re: .exe datei im Programm erstellen
 
Zitat:

Zitat von -Phantom-
was ist ...?

:wall: Der übergeordnete Ordner, würde ich mal sagen...

implementation 5. Jan 2010 17:33

Re: .exe datei im Programm erstellen
 
:wall: Ach so. Der genannte Pfad. %FPC_PFAD%\bin\i386-win32\ppc386.exe

-Phantom- 5. Jan 2010 17:34

Re: .exe datei im Programm erstellen
 
Zitat:

-Phantom- hat folgendes geschrieben:
was ist ...?

Der übergeordnete Ordner, würde ich mal sagen...
das ist mir schon klar... wollte ja wissen ob ich vor dem Pfad shellexecute schreiben sollte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz