![]() |
neue Programmdatei erstellen
Hey Ho
Ich schreibe grade ein Programm, in das der User seine Daten eingibt und dann bei Klick auf einen Button soll eine weitere EXE-Datei erstellt werden, die einen vorgefertigten Code hat, wo aber noch die Angaben des Users eingefügt werden sollen. Ist sowas möglich? |
Re: neue Programmdatei erstellen
Dazu müsstest du einen Compiler mit ausliefern. Du kannst aber das Programm so schreiben, dass es die Angaben aus einer externen Datei zieht.
|
Re: neue Programmdatei erstellen
Alles ist möglich.
Du schreibst die Daten einfach mit den entsprechenden befehlen an das Ende der Exe. Oder wartest hier noch zehn Minuten auf eine fertige Lösung ;) |
Re: neue Programmdatei erstellen
Zitat:
Wenn das Programm seine "eigene Dateigrösse" kennt müsste man die Daten dann doch auslesen können. Oder? Natürlich nur wenn es sich dabei nicht um Programmcode handelt. |
Re: neue Programmdatei erstellen
@Sharky: Das geht, es gibt sogar eine Anleitung im Delphi-Treff dazu. Ich sehe aber ehrlich gesagt keine Vorteile zu Ressourcen. Dort gibt es immerhin eine dokumentierte API (UpdateResource).
|
Re: neue Programmdatei erstellen
|
Re: neue Programmdatei erstellen
Ich habe noch nicht so große Erfahrungen in Delphi mit anderen Dateien gemacht, wie z.B. einige Zeilen in eine txt schreiben und später wieder auslesen, obwohl ich das manchmal bräuchte, und deswegen wär ich ganz froh, wenn einer nen kleinen Code für mich hat. Die Daten müssen unbedingt in ner exe sein, da ich halt auf Knopfdruck ein neues Programm mit Teils von mir eingegebem Code teils vom User eingegebem Text erstellen möchte.
|
Re: neue Programmdatei erstellen
was unterscheidet das "erstellte" Programm zu dem existierenden? nur die vom Benutzer eingegebenen Daten?
darf es keine 2.Datei geben? warum? prinzipiell kannst du z.b. eine ini erstellen und diese beim Programmstart automatisch laden. es gibt zwar massig codebeispiele hier im forum, aber ich bin ja nicht so...
Delphi-Quellcode:
HTH Frank
uses ...,inifiles;
var ini:TIniFile; //speichern ini:=TIniFile.create(extractFilePath(ParmStr(0)+'dateiname.ini'); ini.writestring('Abschnitt','String-Eintrag',edit1.text); ini.writeBool('Abschnitt','Boolean-Eintrag',checkbox1.checked); ini.writeinteger('Abschnitt','Integer-Eintrag',StrToInt(edit2.text)); ini.free; //laden ini:=TIniFile.create(extractFilePath(ParmStr(0)+'dateiname.ini'); edit1.text:=ini.readstring('Abschnitt','String-Eintrag',''); checkbox1.checked:=ini.readBool('Abschnitt','Boolean-Eintrag',false); edit2.text:=IntToStr(ini.readinteger('Abschnitt','Integer-Eintrag',0)); ini.free; |
Re: neue Programmdatei erstellen
Mit Ressourcen sieht es ähnlich aus: Dein Schablonen-Programm zieht die Daten aus einer Ressource. Du kompilierst es einmal mit leerer Ressource und bindest dann das Kompilat in dein anderes Programm ein, entweder als eigene Datei oder als Ressource mit Typ RT_RCDATA. Wenn du dann die Echse mit den Benutzerdaten haben willst, kopierst/entpackst du deine Schablone und fügst ihr mit BeginUpdateResource, UpdateResource und EndUpdateResource die richtigen Daten an.
|
Re: neue Programmdatei erstellen
Es muss ein eigenständiges Programm sein, man erstellt sozusagen sein eigenes Programm und dann soll man die neue EXE aber verschieben und verschicken können, so dass andere User das neue Programm öffnen können. Jetzt klarer geworden?
@ Apollonius: Ich weiß jetzt nicht so genau was du damit meinst^^ Also ich würd einen Code wirklich bevorzugen, als das alles (wovon ich keine Ahnung hab) irgendwie selbst zusammenschreiben. |
Re: neue Programmdatei erstellen
Du möchtest also sowas wie einen Virus-Baukasten (nur zur Verdeutlichung, nicht als Angriff gemeint)?
Man klickt die Funktionalität zusammen, die das Endprodukt haben soll und fertig, richtig? Sherlock |
Re: neue Programmdatei erstellen
Desweiteren reagieren Virenscanner allergisch auf eine Größenänderung von Exe-Dateien, da dies im Allgemeinen ein Hinweis darauf ist, dass die Datei mit Schadcode infiziert wurde. auch ist der Aufwand so etwas zu realisieren nicht unerheblich. Hinzukommt dass du anscheinend auch noch nicht über den nötigen Wissensstand verfügst, dies umzusetzen. Du solltest dir eine andere Möglichkeit suchen, deine Exe-Dateien zu personalisieren. Mögliche Lösungen wurden dir schon genannt.
|
Re: neue Programmdatei erstellen
Ja, sherlock, so in der Art nur halt nicht mit Viren.
Und Luckie, die eigentliche EXE wird ja nicht verrößert, es soll ja nur eine 2. hinzugefügt werden. Und wenn jemand sowas schonmal gemacht hat, kann er mir ja den Code geben, sonst muss ich das wohl lassen, dann ist allerdings die Hälfte des Programms sinnlos... |
Re: neue Programmdatei erstellen
Zitat:
Zitat:
|
Re: neue Programmdatei erstellen
Ich weiß nicht wie ich das erklären soll :gruebel: und deswegen geb ich hier mal den Link zur 1. Beta bekannt (nicht drum kloppen, ihr bekommts alle :spin2: ). Inzwischen gibts zwar schon ne 2. aber da gibt es noch eine neue Funktion, die noch nicht so ganz klappt, das verwirrt nur.
![]() Man soll halt diese Daten eintragen, um die selbst erstellte *sag ich nicht* später als EXE aufrufen zu können. |
Re: neue Programmdatei erstellen
Hihi, nicht böse sein...aber ne EXE mach ich nicht einfach so auf...schon gar nicht wenn im Thread das wort virus auftaucht :mrgreen: Selbst wenn ich selber das Wort eingebracht habe.
Edit: Mach halt Screenshots, oder so Sherlock |
Re: neue Programmdatei erstellen
Liste der Anhänge anzeigen (Anzahl: 2)
Wie soll ich das Programm dann machen? Ein Delphi Programm ohne .exe?
Du hast ja das Wort Virus als Verdeutlichung gebraucht und ich habe gesagt, dass das Programm rein GAR NICHTS mit Viren zu tun hat. Ich hafte für alle Probleme die mit dem Programm aufreten, wie z.B. Abstürze, was eigentlich nicht sein kann, habe es 100 Mal getestet... |
Re: neue Programmdatei erstellen
Ein paar erklärende Worte wären schon nicht schlecht zu dem Screenshot. Was ist den nun Sinn und Zweck deines Programmes?
|
Re: neue Programmdatei erstellen
Man soll eine eigene Fehlermeldung zusammenklicken können um sie sich anzusehen und später als neue exe zu exportieren und an z.B. Fakes herzustellen :oops: oder sie an Freunde / Bekannte zu schicken, die sie dann sehen.
|
Re: neue Programmdatei erstellen
Ein Spaßprogramm also, daß man vorkonfigurieren können soll.
Hmmm. Ich würde sagen, daß man das eventuell über Ressources lösen kann...wie vorher hier auch schon angeregt. So eine Messagebox hat ja eine fixe Anzahl Elemente. Allerdings bin ich mir noch nicht ganz im klaren darüber, wie man die Ressources dann verändert. Aber vielleicht ist das ganze auch Einfach als zweigespann zu realisieren, eine Konfigurations.exe und eine Spass.exe, die verändert wird. sherlock |
Re: neue Programmdatei erstellen
Zitat:
![]() ![]() ![]() Ist ganz einfach. |
Re: neue Programmdatei erstellen
Und damit sollte alles erledigt sein...
Muss man vorher halt festlegen, welche Ressources es gibt, und einen entsprechenden Editor schreiben. Fertig. Sherlock |
Re: neue Programmdatei erstellen
Ok, dann lass ich das mit dem Programm lieber.
Ich habe noch nie irgendwas mit Ressourcen oder so gemacht, also wenn niemand nen Code hat, war die Arbeit halt umsonst. |
Re: neue Programmdatei erstellen
Dann wäre das doch mal eine Möglichkeit sich damit zu beschäftigen oder?
|
Re: neue Programmdatei erstellen
Zitat:
|
Re: neue Programmdatei erstellen
Vielleicht solltest du vorher fragen, was ich gemacht habe. Momentan sinds zwar nur 1000 Zeilen Code aber ich werds einfach mal versuchen, das mit den Ressourcen hinzubekommen
|
Re: neue Programmdatei erstellen
Jiro, versuchs einfach mal. Die API-Funktionen sind ja auch in der Delphi-Hilfe zu finden. Beiß Dich durch. Dann wirst Du einer der wenigen Ressource-Kenner hier im Forum ;) Ausserdem ist der Weg das Ziel.
Sherlock |
Re: neue Programmdatei erstellen
@Jiro,
:dp: ich würde dich bitten deine Screenshots anzhängen und nicht zuverlinken. Nichts ist ägerlicher, wenn man ein Screenshot erwartet und ein schönes rotes Kreuz zugesicht bekommt, weil der Server (auf dem das Pic liegt) down ist, oder schon gar nicht mehr existiert. Danke! Gruß DM |
Re: neue Programmdatei erstellen
Ok, werde ich machen, aber wie ich es sehe ist das Bild noch da, sonst muss ich mich mal Beschweren beim Provider wegen 99,9% Serververfügbarkeit :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 Uhr. |
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-2025 by Thomas Breitkreuz