Autor |
Beitrag |
Xiut
      
Beiträge: 50
|
Verfasst: Di 01.06.10 21:52
Hallo zusammen!!
Ich hab folgendes Problem:
Ich suche eine Metode, um z.B. eine Variable meines Programmes nachträglich zu ändern.
Einen Editor würde ich dafür dann gerne schreiben. Das heiß ich möchte ein Programm schreiben, das die
"Rohe" Exedatei auspackt und dort eine Variable ändert.
Wie kann ich das realisieren?
Achja... Ich möchte umbedingt das man dann nur eine .exe Datei ohne externe Datei hat.
Xiut =)
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Di 01.06.10 21:54
Hi
Das ist mal wieder einer dieser Fälle: Setz' dich, erzähl uns mehr.  Das klingt, als wenn es ziemlich sicher eine bessere Lösung für dein Problem geben würde.
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Xiut 
      
Beiträge: 50
|
Verfasst: Di 01.06.10 21:58
Also ich möchte eine URL die ich als z.B. Konstante in der EXE habe ändern.
Das ist dann z.B. die URL die ich mit dem Browser der im Programm ist aufrufe.
Mehr soll es auch nicht sein deswegen kann ich auch nicht mehr erzählen ^^
Ah doch... Man soll auf jeden Fall nur eine Datei haben, da das mit ZIP Dateien und co. zu
aufwändig für das kleine Programm ist. Zusätzlich soll das Programm immer wieder angepasst werden
und das auch ohne den Sourcecode und Delphi.
Zuletzt bearbeitet von Xiut am Di 01.06.10 23:23, insgesamt 1-mal bearbeitet
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Di 01.06.10 22:10
Hi
Theoretisch gibt es die Möglichkeit, hinten an eine Datei noch beliebige Daten anzuhängen. Wie das geht, weiß ich aber nicht; auch habe ich Zweifel, ob du die eigene, gerade ausgeführte Exe überhaupt bearbeiten kannst.
Ich erwähne aber noch einmal den Standardweg: Eine Config-Datei im selben Ordner wie die Exe für eine portable Version, oder eine Config-Datei im AppFiles-Ordner für eine fest installierte Exe.
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Xiut 
      
Beiträge: 50
|
Verfasst: Di 01.06.10 22:17
Ja aber eine Config Datei möchte ich ja eher nicht.
Das Programm soll jeder so ändern können das seine Webseite geöffnet wird und
das die nur eine Exe weiter geben müssen.
Finde das mit ZIP Dateien und änliches nicht soooo toll und würde das halt gerne so machen.
Da eine extra Datei nur um eine URL zu ändern auch nicht so angemessen ist wie ich finde ^^
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 01.06.10 23:14
Moin!
Xiut hat folgendes geschrieben : | Das Programm soll jeder so ändern können das seine Webseite geöffnet wird und das die nur eine Exe weiter geben müssen. |
In diesem Fall ist eine ausführbare Datei doch gar nicht notwendig (ich selbst würde so einem Programm wg. Ähnlichkeit mit Malware sowieso nicht trauen, nur um eine URL aufzurufen?  ).
Klick mal auf das Seitensymbol in der Browser-Adress-Zeile und zieh das auf den Desktop, dann hast du eine Verknüpfung zu der aktuellen Webseite. Die kannst du einfach weitergeben oder ändern und dafür braucht man auch kein Programm, die wird dann per Doppelklick einfach mit dem Standard-Browser geöffnet.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Xiut 
      
Beiträge: 50
|
Verfasst: Di 01.06.10 23:17
Nein von den Grundfunktionen ist das etwas mehr, aber auch nicht viel mehr.
Vielleicht ein zwei Funktionen, wie bestimmte Sachen auslesen und sowas halt.
Es soll die URL des Benutzers im Browser in dem Programm geöffnet werden.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 01.06.10 23:30
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Di 01.06.10 23:40
jaenicke hat folgendes geschrieben : | Wie wäre es mit meiner fertigen Lösung dafür?  |
Daran dachte ich
Das gibt jetzt aber die falsche Motivation: Ich halte das für keine zielführende Lösung, Windows sieht so etwas einfach nicht vor, und ich halte es für viel mehr Aufwand(false-Positives durch Virenscanner vermeiden, etc, etc) als, einfach den Weg über zwei Dateien zu gehen.
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Mi 02.06.10 07:16
Wie wäre es denn, die URL als Parameter an die Exe zu übergeben (entweder über die Verknüpfung oder sonstwie beim start der Exe).
Die Lösung von Jaenicke ist meiner Meinung nach ein schönes Beispielprogramm, das zeigt, was man machen kann, aber in der Praxis würde ich das nicht einsetzen wollen.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 02.06.10 09:01
Für ein installiertes Programm ist meine Lösung natürlich nicht gedacht.
Für eine einmalige Vorkonfiguration eines Programms zur Weitergabe oder für eine portable Lösung z.B. für einen Stick finde ich diese Vorgehensweise aber durchaus passend. Denn in diesen Fällen kann man die Exe verändern, weil es keine Rechteprobleme gibt und man braucht dann keine externen Dateien.
Dass der Virenscanner anschlagen kann, stimmt zwar, das ist bei mir aber bisher nicht passiert. Außerdem ist das ohnehin nur für kleine Tools sinnvoll, und da ist das meistens auch nicht so wichtig, wenn dann einzelne Scanner anschlagen.
|
|
Xiut 
      
Beiträge: 50
|
Verfasst: Mi 02.06.10 18:43
Möchte halt wirklich nur EINE Variable ändern. Ich finde eine extra Datei ist dafür viel zu aufwendig um nur einen kleinen String zu übermiteln.
Ich schau mir das ein da mal an. Gibt es sonst vielleicht eine "sauberere" Lösungen?
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Mi 02.06.10 18:49
Hi
Der Vollständigkeit halber: Einzelne Strings werden von Programmen auch häufig in die Registry geschrieben. Das fällt bei dir aber weg, da dein Programm ja portabel sein soll.
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Xiut 
      
Beiträge: 50
|
Verfasst: Mi 02.06.10 22:50
Ändert sich die Adresse eines Strings immer wieder in einem Programm?
Und wenn nicht, kann ich denn dann nicht mit der Adresse den String finden und ihn da ändern?
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mi 02.06.10 23:55
Und was machst du, wenn der neue String länger ist, als der alte? Einfach den nachfolgenden Speicher überschreiben?
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 03.06.10 00:10
Xiut hat folgendes geschrieben : | Ich schau mir das ein da mal an. Gibt es sonst vielleicht eine "sauberere" Lösungen? |
Wie du die Exe veränderst ist doch egal, es geht bei der Diskussion ob die Lösung sauber / gut ist ja darum, dass du die Exe veränderst. Nicht wie und wo.
Und wenn du sie verändern willst, dann ist meine Lösung die einfachste und sinnvollste Variante.
|
|
Xiut 
      
Beiträge: 50
|
Verfasst: Do 03.06.10 00:16
Ja ich hab ja nur gefragt ob es noch eine saubere Lösung gibt.
Man muss doch nicht gleich die erst beste Variante nehmen...
--- Moderiert von Narses: Beiträge zusammengefasst---
Xentar hat folgendes geschrieben : | Und was machst du, wenn der neue String länger ist, als der alte? Einfach den nachfolgenden Speicher überschreiben? |
Kann ich denn einen kleineren String dann dort rein schreiben?
Sonst muss ich halt einen String als Dummi rein schreiben der um die 50 Zeichen lang ist. Ich denke mal keine Domain hat mehr Zeichen^^
Wenn ich dann nicht weniger rein schreiben kann, fülle ich halt die restlichen Zeichen mit ### oder änlichem. Dann im Programm kann ich
ja dann abfragen wie der String aufgebaut ist und ihn dann verändern wie ich will.
Oder geht das nicht?
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Do 03.06.10 00:17
jaenicke hat folgendes geschrieben : | Und wenn du sie verändern willst, dann ist meine Lösung die einfachste und sinnvollste Variante. |
Ack. Reinschreiben in ausgeführten Code = -100 < -10 = Reinschreiben in nicht ausgeführte Abschnitte, die lediglich gelesen werden können.
Nicht protable Versionen musst du dann in jedem Fall getrennt behandeln(Registry-Eintrag!), da du dort in keinem Fall Schreibrechte auf deine Exe voraussetzen kannst.
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Xiut 
      
Beiträge: 50
|
Verfasst: Fr 04.06.10 17:35
Und könnte ich denn eine Resource nach dem Compelieren "einlesen"?
Das ich dann mein Programm per Parameter eine "Config" Datei einlesen lasse. Würde das gehen?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 04.06.10 17:42
|
|