![]() |
Compiliertes Programm ändern & speichern
Ich habe ein Downloadprogramm für einen Freund geschrieben, das ein Spiel herunterläd. Jetzt hat er mich gefragt, ob ich das Programm
auch für andere Spiele anpassen würde. Er hat mir dann gesagt, dass er um die hundert Spiele hat, für die er (für jedes extra) einen Downloader möchte. Geändert muss in dem Downloader folgendes werden: ein Informationsbild, zwei Label (Link & Dateiname). Währe es da möglich, ein Programm zu schreiben, dass diese 3 Objekte ändert und die Exe dann wieder speichert? Oder gibt es eine andere Möglichkeit? |
Re: Compiliertes Programm ändern & speichern
Warum nimmst du nicht eine Textdatei, aus der das Programm die Infos liest?
|
Re: Compiliertes Programm ändern & speichern
Da er die Veränderung einer *.exe haben möchte, würde ich meinen, er ist nicht mehr im Besitz der Projekt-Dateien?!
In dem Fall würde mir nur disassembling einfallen. Andernfalls kannst du doch das ganze Variabel gestalten. Zumal, warum müssen denn Labels geändert werden, um den Downloadpfad o.ä. zu ändern? |
Re: Compiliertes Programm ändern & speichern
Die Source hab ich natürlich noch. Es geht darum, dass mein Freund sich den Downloader selber abändern und verwenden kann. (er hat
aber kein Delphi) Die Label sind nur zur Information des Benutzers da. Die URL hab ich in einer Variable angegeben. |
Re: Compiliertes Programm ändern & speichern
na dann erstelle doch eine textdatei mit dem pfad zum bild und dem dateinamen und was du noch so alles da drinn haben willst und schau beim programmstart was da drinn steht und das zeigst du dann an.
dann braucht dein freund einfach nur die textdatei verändern. |
Re: Compiliertes Programm ändern & speichern
spricht irgend etwas gegen die Variante die Dinge in eine Textdatei oder eine externe Datei auszulagern? Denn das wäre die einfachste Variante. Natürlich kannst du dein Programm auch so schreiben das du bestimmte Stellen später einfach patchen kannst.
|
Re: Compiliertes Programm ändern & speichern
Die Methode mit der .txt ist an und für sich nicht schlecht, aber er möchte den Downloader ja weitergeben, und ich will nicht, dass
jeder einfach nur die .txt ändern kann um dann das Programm als seines zu verkaufen. Ich spiele mittlerweile mit der Idee, dass ich die Namen der Dateien gleich bestimme. (Also das jedes Informationsbild z.B. info.jpg heisst) Dann müsste ich für jedes Programm "nur" die Dateien überschreiben und dann compilieren. Aber bei um die 100 Stück ist das auch ziemlich Arbeitsaufwendig. [edit] Da fällt mir ein, dass ich ja aus den sich ändernden Teilen eine Ressource erstellen könnte, dann wäre das ganze noch einfacher. Aber im Endeffekt wäre es trotzdem viel Arbeit. Kann man das aufrufen und Kompilieren nicht irgendwie automatisieren? |
Re: Compiliertes Programm ändern & speichern
Mach Dir doch eine Definitions-Unit, in der Du die "veränderbaren" Texte und Bilder als Konstanten ablegst.
Weiterhin erstellst Du eine Batch-Datei, die: - die Konstanten in der Definitions-Unit anpasst - den dcc (Delphi-Comandline-Compiler) mit passenden Parametern aufruft Und für jedes Projekt machst Du dann eine eigene Batch und fertig. |
Re: Compiliertes Programm ändern & speichern
Gute Idee. Ich werds ausprobieren.
Danke schon mal für die Antworten ;) |
Re: Compiliertes Programm ändern & speichern
wenn du es doch mit patchen machen willst dann musst du in der Exe eben Speicher dafür vorsehen. Zum Beispiel durch eine Globale Variable etc.
Delphi-Quellcode:
wenn du das compilierst (und dafür sorgst das die variablen nicht weg optimiert werden) dann stehen die auch so in deiner Exe drin. Das heißt du durchsuchst später die fertige Exe nach $ABABAB$CCAABB und die 64000 Byte dahinter sind der Platz wo du dein Bild rein speichern kannst (also die Daten überschreiben kannst)
var
Marker01: Integer=$ABABAB; Marker02: Integer=$CCAABB; Platz_Fuer_Bild: array[0..64000-1] of char; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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