[PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von H.Brill »

Hallo, ich möchte mich mal zum jetzigen Zeitpunkt dazu schalten, weil ich einige Fragen an dich habe.
Ist es richtig, daß du einen Patch, als komprimiertes Format eines Packers mit irgendwelchen Daten
erstellst ?
Willst du diesen Patch dann in eine .exe (Target) mit reinpacken ?
Soll dann beim Aufruf des Target wieder alles entpackt werden, damit es benutzt werden kann ?

Wenn ja, muß ich mal eines vorweg sagen. Irgendwas in eine .exe rein zu kopieren geht zwar, aber wird
nichts bringen. Könnte sogar sein, daß man sie später gar nicht mehr ausführen kann, je nachem, wo der
Patch eingefügt wurde. Was soll die .exe damit machen ?

Wenn man sowas machen will, egal ob das jetzt Bilder, Texte oder binäre Sachen wie z.b. DLLs sind, macht
man das normalerweiße mit DataSection und IncludeBinary. Da dies aber nun nur greift, wenn die .exe
compilert wird, ist ein späteres Einfügen mit dieser Funktion nicht möglich.
Sowas kann man gut mit einem Ressourcehacker (z.b. den guten alten ResHacker) machen. Nur muß man
in der .exe dafür sorgen, daß diese Ressourcen auch geladen werden.

Da auch die Windows-API in punkto Ressourcen einiges hergibt, kann man beides auch von Hand machen.
Ein Programm, das den Patch erstellt und diesen dann als Ressource ins Target.exe einfügt. Im Target.exe
muß man dann davor im Quellcode dafür sorgen, daß diese Ressourcen an entsprechender Stelle bzw. zum Start
geladen werden. Das Laden geschieht üblicherweise in ein vorher definiertes Stück Memory, womit man dann
auch leicht wieder ein Bild mit Catch laden oder DLLs wieder auf Datenträger schreiben kann.

Schade eigentlich, daß PB dazu nichts bereit stellt. Evtl. haben aber auch ein paar Spezialisten im engl Forum
dafür gesorgt und ein .lib bereit gestellt.
PB 6.10
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo H. Brill,

Ursprünglich war ich am Erstellen eines Makro Rekorder für einen Kollegen und mich selber.
Wie bei diesem Code zu Beginn war der Ursprung dort ebenfalls ein extrem alter Code,
den ich am aufbereite bin.

Es stellte sich dort heraus, dass ich vieles abändern muss und ich dem Kollegen
zwischendurch ein UpDate zukommen lassen wollte.

Wie löse ich diese Aufgabe am einfachsten, ohne dass ich ihm jedes Mal alle Dateien,
welche benötigt werden in ein zip verfrachte zusende.

Die Überlegung war schnell, die Möglichkeit, mit einem Pacht Maker zu arbeiten.
Klar, es gibt auf github etliche Varianten, von dubios bis zu Kommerziell.

Dort begann ich mich zu fragen, Kommerziell, Lizenzen oder Dubios mein Kollege und sein
Computer, wäre es nicht auch möglich, mit PB sowas lösen zu können.

Wieder etwas wo ich mein Wissen aufbessern kann und mich einarbeiten kann.

Zum Zeitpunkt Heute, die Problematik ist, dass die ursprünglich die Datei ein Single File
verfahren war ohne GUI.

Meine Überarbeitung geht hingegen in eine Variante mit GUI, damit man Scripts von
Mausbewegungen und Key Eingaben sauber speichern kann und viel später wieder
einsetzen kann.

Die vorbereitete Version heute hat jedoch viel mehr Dateien auch für grafische Button
als zuvor was auch aufbläht.

Und so kommt auch meine zusätzliche Hürde ins Spiel.
Alles in eine "Ausführbare Datei backen" dann wird sie viel grösser als paar KB, sondern etliche MB
wenn nicht noch mehr, wollte ich auf eine Art und Weise auch vermeiden.

Zum anderen, den Weg alles in eine Compilierte Date zu haben, wusste / weiss ich zum Zeitpunkt
auch noch nicht wie lösen.

Man könnte natürlich das ganze (Makro Rekorder) auch noch erweitern um den Effekt Internet UpDate,
kleiner Patch für geringe Änderung, Internet UpDate bei wirklich NEUEN Elementen welche hinzugeladen werden müssen.

Alles in allem wurde mir bewusst, dass ich das Ganze besser in Teil-Projekte aufteile als
dass ich das Projekt "Makro Rekorder" immer weiter aufblähe, auch mit Fragen hier im Forum

Denn ich selber würde noch mehr den Faden verlieren zwischen Haupt-Projekt und Teil-Projekt, wenn alles
in einem gegliedert wäre.

Wie ich hingegen zum Zeitpunkt heute ein UpGrade von der Ur- Version Makro Rekorder zu einer ersten GUI Variante komme
welche 20, 30 Icon mehr besitzt wäre für mich auch noch eine Herausforderung, welche ich versuche zu lösen.

Es verschmelzen sich sicherlich die Überlegungen der verschiedenen Teil-Projekte auch bei meinen Schilderungen.
Und das versuchte ich natürlich so weit wie möglich herausnehmen zu können.

Man könnte einen Patch Maker auch für sich alleine in einem anderen Projekt wieder verwenden usw.

Dies vielleicht hierzu als eine Erklärung. Dies ist ein Patch für eine einzelne ausführbare Datei oder eine dll, aber nicht als
Entkoppeltes Modul, das hinzugeladen wird und zur Laufzeit benötigt würde.

Aus dem Patch Maker könnte sich natürlich die UpDate Funktion erweitern lassen, oder ich suche hier im Forum
nach einer entsprechenden Möglichkeit, damit ich auch hier wieder etwas lernen kann.

Herzliche Grüsse aus dem nasskalten Bern
Christian
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Axolotl
Beiträge: 266
Registriert: 31.12.2008 16:34

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von Axolotl »

Hi ChrigiGee,

nix für ungut, aber die Kernaufgabe "Program-Update" würde man (vielleicht) am elegantesten mit einem Setup-Program erledig.

Ich weiß, Deine Antwort wird lauten: Ich will es mal selber machen. So zum üben.
Was ja auch völlig okay ist.

Aber vielleicht helfen ja bis fertig geübt eines der folgenden Programme. (Sortierung völlig wahlfrei.) Keines der Programme habe ich bisher genutzt, bzw. werde ich nutzen. (Ich habe einfach die Anforderung "Updates zu liefern" nicht.)

PB EasySetup - Setup maker for your program
Inno Setup
NSIS (Nullsoft Scriptable Install System)
Using PureBasic latest stable version and current alpha/beta (x64) on Windows 11 Home
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von H.Brill »

Wie löse ich diese Aufgabe am einfachsten, ohne dass ich ihm jedes Mal alle Dateien,
welche benötigt werden in ein zip verfrachte zusende.
Naja, irgendwie muß er ja die Dateien bekommen. Ob nun Bilder, Viedeos, Musikdateien oder sonstwas,
gepackt oder ungepackt.

Ob die nun im Patchprogramm sind oder als .zip oder sonstwas zu ihm kommen. Ich hätte jetzt so gedacht,
daß die .exe bei deinem Kollegen soweit erhalten bleibt und nur die neuen Datei(en) hinzu komm(t)en. Der Patcher
selbsber enthält die neusten Dateien und schreibt mit poke und WriteData sie in die alte .exe rein. Evtl. entpackt
er vorher das noch.

Ist zwar keine schlechte Idee, aber da ist Vorsicht geboten, etwas in eine .exe oder .dll an irgendeiner Stelle rein
zu schreiben. Das kann auch mal was schief gehen und das Programm läßt sich nicht mehr starten.

Daher war ja auch mein Vorschlag, das mit Ressourcen zu lösen. Das ist ein extra Bereich in der .exe bzw. dll
wo man was reinschreiben kann. Und nicht nur Bilder, Icons usw. Mit RC_DATA als Ressourcentyp geht da pracktisch
alles. Man muß nur das Originalprogramm, so erweitern, daß es auch diese Ressourcen ausliest. Solche Ressourcen
kann man auch auf mehrere Dateien erweitern, indem man ihnen Namen bzw. Nummern zuteilt. Mit einer Stringressource
wäre es auch möglich, Pfade oder auch Dateinamen zu ändern, wenn man das in der Originaldatei entsprechend
berücksichtigt.

Also, der Patcher enthält die Dateien als Resource (wenn gewollt auch als gepackt). Der Patcher selber ist die
einzigste Datei, die du verschicken mußt. Wenn der Packer dann beim Kollegen ausgeführt wird, updatet dieser
die Ressourcen der Originaldatei. Wenn die neue, gepachte Datei dann gestartet wird, liest sie zuerst die geupdateten
Ressourcen ein. Un schon ist er auf dem neusten Stand.

So könnte ich mir das eher vorstellen.
PB 6.10
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo Axolotl,
Halli Hallo @all,

Was soll ich sagen, bin etwas kürzergetreten, wegen eines Feriengastes.
Und nun stehe ich wieder da und möchte mich den Projektteilen widmen, und mir scheint, ich habe sehr viel verpasst.
Und ganz im Besonderen möchte ich mich bei Euch allen bedanken.

Ja, da hast Du absolut recht, mit Seutp und UpDate Funktion geht es einfacher.
NSIS und Inno Setup habe ich schon mal angeschaut.

Und ich geb zu, dass mich die Script Sprache, der beiden etwas überfordert hatte.
Sodass ich die beiden einfach auf die Seite geschoben habe und in meinem Hinterkopf
haben sie ein eher unbeachtetes Dasein gefristet.

Das PB Easy Setup muss ich mir dann doch mal etwas genauer anschauen.
Hab ich bis jetzt auch noch nie so richtig damit befasst.

Müsste ich wohl dann doch mal mehr Zeit dafür investieren.
Evtl. auch mal etwas mehr Zeit in alle drei.

Ich denke, die beiden Inno Setup und NSIS wären sicher sehr mächtige Werkzeuge.
Aber wenn man sich noch nicht groß damit beschäftigte, ist, was mich jetzt betrifft
die Überforderung gerade gigantisch.

Gerade dort hätte ich für mich eine gewisse Vereinfachung gewünscht.
Sodass man nicht das gesamte auf einmal a la; ich lese Tutorial oder
schaue YT Tutorial bis zu Weihnachen. :D

So, dann mache ich mich an die Arbeit.

Liebe Grüsse unterdessen aus dem eher winterlichen Bern.
Christian
Axolotl hat geschrieben: 13.09.2024 13:34 Hi ChrigiGee,

nix für ungut, aber die Kernaufgabe "Program-Update" würde man (vielleicht) am elegantesten mit einem Setup-Program erledig.

Ich weiß, Deine Antwort wird lauten: Ich will es mal selber machen. So zum üben.
Was ja auch völlig okay ist.

Aber vielleicht helfen ja bis fertig geübt eines der folgenden Programme. (Sortierung völlig wahlfrei.) Keines der Programme habe ich bisher genutzt, bzw. werde ich nutzen. (Ich habe einfach die Anforderung "Updates zu liefern" nicht.)

PB EasySetup - Setup maker for your program
Inno Setup
NSIS (Nullsoft Scriptable Install System)
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo H. Brill,

Deine Ansichtsweise finde ich auch sehr spannend.

Würde ich gerne auch in Betracht ziehen, nur habe ich mich
noch nie damit befasst, zur Thematik Ressourcendateien.

Du meinst, man überträgt die Ressourcendatei, das Ausführende
Programm erkennt die Ressourcendatei und
extrahiert dort die für IHN bekannten Inhalte.

"Nach einem neu Starte der Anwendung", kann die Anwendung ggf.
NEUE Inhalte der Ressourcendatei ebenfalls extrahieren und verwenden.

So Update auf Update in einem, da die Ressource mehrere Informationen
beinhalten kann und die Grenze liegt nur darin, dass die Hauptanwendung
deren Inhalt kennt.

Oder habe ich Deine Kernaussage hier missverstanden?

Herzliche Grüsse aus dem eher Nebel verhangenen Bern
Christian
H.Brill hat geschrieben: 13.09.2024 18:03
Wie löse ich diese Aufgabe am einfachsten, ohne dass ich ihm jedes Mal alle Dateien,
welche benötigt werden in ein zip verfrachte zusende.
Naja, irgendwie muß er ja die Dateien bekommen. Ob nun Bilder, Viedeos, Musikdateien oder sonstwas,
gepackt oder ungepackt.

Ob die nun im Patchprogramm sind oder als .zip oder sonstwas zu ihm kommen. Ich hätte jetzt so gedacht,
daß die .exe bei deinem Kollegen soweit erhalten bleibt und nur die neuen Datei(en) hinzu komm(t)en. Der Patcher
selbsber enthält die neusten Dateien und schreibt mit poke und WriteData sie in die alte .exe rein. Evtl. entpackt
er vorher das noch.

Ist zwar keine schlechte Idee, aber da ist Vorsicht geboten, etwas in eine .exe oder .dll an irgendeiner Stelle rein
zu schreiben. Das kann auch mal was schief gehen und das Programm läßt sich nicht mehr starten.

Daher war ja auch mein Vorschlag, das mit Ressourcen zu lösen. Das ist ein extra Bereich in der .exe bzw. dll
wo man was reinschreiben kann. Und nicht nur Bilder, Icons usw. Mit RC_DATA als Ressourcentyp geht da pracktisch
alles. Man muß nur das Originalprogramm, so erweitern, daß es auch diese Ressourcen ausliest. Solche Ressourcen
kann man auch auf mehrere Dateien erweitern, indem man ihnen Namen bzw. Nummern zuteilt. Mit einer Stringressource
wäre es auch möglich, Pfade oder auch Dateinamen zu ändern, wenn man das in der Originaldatei entsprechend
berücksichtigt.

Also, der Patcher enthält die Dateien als Resource (wenn gewollt auch als gepackt). Der Patcher selber ist die
einzigste Datei, die du verschicken mußt. Wenn der Packer dann beim Kollegen ausgeführt wird, updatet dieser
die Ressourcen der Originaldatei. Wenn die neue, gepachte Datei dann gestartet wird, liest sie zuerst die geupdateten
Ressourcen ein. Un schon ist er auf dem neusten Stand.

So könnte ich mir das eher vorstellen.
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von H.Brill »

Ich erkläre es mal so :
der Patcher enthält z.b. Bilder als Resourcen. Diese Resourcen kann man programmiertechnisch in den Patcher einbinden
oder man nimmt ein Tool wie z.b den ResHacker. Beim manuellen Einbinden (programmiertechnisch) muß man vorher noch die
Bilder mit einem Resourcen-Compiler (BRC, GORC o. ä.) in eine .res compilieren. Der Reshacker macht das automatisch.
Da diese Resourcen auch einen Namen bzw. Nummer haben, werden sie überschrieben mit den neuen Versionen der Bilder(.res)

Der Patcher lädt nun die original .exe und schreibt die Ressourcen rein. Gleichlautende Resourcen werden dann überschrieben.
Jetzt hat die originaldatei die neuesten Bilder. Natürlich muß man vorher dafür sorgen, daß das originale Programm auch diese
Resourcen aus seinem Speicher mit den entsprechenden Befehlen lädt.

Der Unterschied ist halt, daß die Bilder nicht in einer .zip sind, sondern schon in der originalen .exe. Der Anwender erspart sich
das Entpacken. Das machst du als Programmierer der originalen .exe beim Porgrammstart selber.

Ich hatte vor Jahren selber mal so einen Fall. Da hatte ich neben dem Originalprogramm auch eine .DLL mitgeliefert. Seltsamerweise
hatte der Benutzer meines Programms die .DLL immer wieder gelöscht, was zur Folge hatte, daß mein Programm nicht mehr
einwandfrei lief bzw. beim Starten die .DLL vermisste. Daraufhin hatte ich die .DLL als RC_DATA in das originale Programm
verfrachtet. Beim Programmstart beim Anwender wurde die .DLL als Speicherblock ausgelesen und direkt in den Ordner
als Listview.dll gespeichert.

Somit konnte die .dll nicht mehr verloren gehen.
Hier mal die bekanntesten Ressourcen für Windows :

Code: Alles auswählen

RT_CURSOR 1
RT_BITMAP 2
RT_ICON 3
RT_MENU 4
RT_DIALOG 5
RT_STRING 6
RT_FONTDIR  7
RT_FONT 8
RT_ACCELERATOR 9
RT_RCDATA 10
RT_MESSAGETABLE 11
RT_GROUP_CURSOR 12
RT_GROUP_ICON 14
RT_VERSION 16
RT_DLGINCLUDE 17
RT_PLUGPLAY  19
RT_VXD 20
RT_ANICURSOR 21
RT_ANIICON 22
RT_HTML 23
RT_MANIFEST 24

Bei einer .zip Datei hättest du aber die wenigste Arbeit, vorausgesetzt, es handelt sich um zusätzliche Dateien, wie etwa Bilder
o. ä. Kommt darauf an, was du updaten willst.

Achja, Nimm doch einfach eine DataSection und Data für irgendwelche Werte oder IncludeBinary für Dateien.
Damit hättest du doch volle Kontrolle. Sowohl bei Änderungen am Quellcode als auch bei irgendwelchen Dateien.
Zum Auslesen sind dann die Catch-Funktionen hilfreich. Dann brauchst ja nur noch die geänderte (neueste) .exe
deinem Kollegen zu schicken. Ist halt aus der PB-Hilfe nicht so direkt ersichtlich. Da steht auf der Eingangsseite
nur Data und bei den Includefunktionen findet man auch IncludeBinary.
PB 6.10
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo und einen Guten Tag @all,

So, jetzt kann ich mich auch wieder etwas vereinfachter dem / den Projekt(en) widmen.
Was ich zur Thematik mit Setup resp. Internet UpDate sagen kann, ich habe keine eigene
Homepage (fix IP) das einzige, was ich hätte, wäre die Möglichkeit via Dyn. Domain.

Und jetzt "NUR" für diesen Fall eine Domain damit es etwas einfacher geht und ich sonst nicht groß einsetze,
wäre dann auch übertrieben.

Somit wäre zum Zeitpunkt nicht alles möglich mit Internet UpDate, aber wenn ich die entsprechenden UpDate
vorläufig über eine Möglichkeit Google Drive oder Dropbox übergeben kann, ist mir hier bereits um einiges geholfen.

Internet UpDate kann ja immer noch zukünftig eingeplant werden.

Herzliche Grüsse
Christian
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo H.Brill

Momentan ist die Problematik nicht so gravierend, die Änderungen
beziehen sich zurzeit eher noch auf das Design der Anwendung.

Da ich aber immer wieder etwas anpasse und abändere, gibt es immer
mal wieder eine kleine Änderung, welche ich weiter gebe.

Das aber immer alles in eine ZIP hineinpacken und senden ist nach meiner Überlegung etwas sinnfrei.
Mir wäre es lieber, ich könnte die Teile ersetzen, welche gerade sich geändert haben.

Sei dies eine DLL, die hinzugekommen wäre oder die Anwendung an sich, welche sich geändert hatte.

Was zusätzlich für mich gegen das Internet UpDate führte, ich habe noch keinen Plan wie ich es
umsetzen könnte IN der Anwendung, dass ich überprüfe, ob ein UpDate existiert.

Oder könnte ich das aus der Anwendung mit der SetUp Funktion ansprechen und ausführen lassen.
Also das ganze UpDate Prozedere aus der App selber abwickeln ist für mich auch noch etwas Neuland.

So muss ich nicht die gesamten grafischen Elemente in das zip packen und versenden, was mitunter
verwirrend ist. Momentan versuche ich mit proGUI die Oberfläche zu erstellen.

Herzliche Grüsse
Christian

H.Brill hat geschrieben: 08.11.2024 18:53 Ich erkläre es mal so :
der Patcher enthält z.b. Bilder als Resourcen. Diese Resourcen kann man programmiertechnisch in den Patcher einbinden
oder man nimmt ein Tool wie z.b den ResHacker. Beim manuellen Einbinden (programmiertechnisch) muß man vorher noch die
Bilder mit einem Resourcen-Compiler (BRC, GORC o. ä.) in eine .res compilieren. Der Reshacker macht das automatisch.
Da diese Resourcen auch einen Namen bzw. Nummer haben, werden sie überschrieben mit den neuen Versionen der Bilder(.res)

***CUT***

Bei einer .zip Datei hättest du aber die wenigste Arbeit, vorausgesetzt, es handelt sich um zusätzliche Dateien, wie etwa Bilder
o. ä. Kommt darauf an, was du updaten willst.

Achja, Nimm doch einfach eine DataSection und Data für irgendwelche Werte oder IncludeBinary für Dateien.
Damit hättest du doch volle Kontrolle. Sowohl bei Änderungen am Quellcode als auch bei irgendwelchen Dateien.
Zum Auslesen sind dann die Catch-Funktionen hilfreich. Dann brauchst ja nur noch die geänderte (neueste) .exe
deinem Kollegen zu schicken. Ist halt aus der PB-Hilfe nicht so direkt ersichtlich. Da steht auf der Eingangsseite
nur Data und bei den Includefunktionen findet man auch IncludeBinary.
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von H.Brill »

Das Problem ist halt, daß so eine compilierte Anwendung 'aus einem Guß' ist. Sämtliche Referenzen und
Funktionen werden beim Linken in Sprungmarken umgesetzt. In so einer binären Datei findet man auch
dann kaum Texte usw. Wenn du nun einen Button, Listbox o. ä. hinzufügen möchtest, mußt du ja auch
deren Funktionalität (z.b. Buttonklick) einfügen. Also das ist gar nicht so leicht bzw. fast nicht machbar.
Auch eine selber gemachte DLL hilft da nicht so recht weiter. Das einzige, was ich dazu kenne, ist, wenn
mann eine Mehrsprachlichkeit bei Menüpunkten bzw. Buttonbeschriftungen, machen will. Da kann man
die entsprechenden Fremdworte in so eine DLL packen und beim Start der Anwendung laden. Danach kann
man die entsprechenden Beschriftungen auslesen und z.b. mit SetGadgetText die Beschriftung ersetzen.
Da bekommt halt der Spanier die DLL mit den spanischen Testen, der Italiener mit ital. Texten und der
Franzose die, mit den franz. Texten.

PS: Die Abfrage, welche Versionsnummer der Anwender benutzt, könnte man über das Manifest der
.exe herausfinden. Das sind Einträge als XML, wo man auch eine Programmversion speichern könnte.
Evtl. könnte man auch was mit dem RUNTIME - Modul machen.
PB 6.10
Antworten