Laden...

Resource während der Laufzeit ändern / Alternative

Erstellt von User404 vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.639 Views
U
User404 Themenstarter:in
4 Beiträge seit 2014
vor 10 Jahren
Resource während der Laufzeit ändern / Alternative

Hi Community!
Ist es möglich eine Resource Datei während der Laufzeit zu ändern?
Ich möchte eine Highscore-Liste im Programm (.exe) speichern, diese auf Wunsch auslesen
und gegebenenfalls auch einen neuen Score speichern.

Versucht hab ich es mit einer .txt Datei als Resource und das auslesen funktioniert soweit ohne Probleme, jedoch hab ich keine Ahnung wie ich in diese Datei etwas schreiben könnte.

Ich will keine externe Datei, da die Weitergabe umständlicher werden würde. Außerdem wird bei der kleinsten Änderung am Pfad z.B. die Datei nicht mehr gefunden. Nebenbei hätte es auch
den schönen Nebeneffekt das der Benutzer die Scores nicht fälschen kann 👅

Normal müsste es schon möglich sein das man einen String im Programm dauerhaft abspeichern
und lesen kann, oder?
Geht ja mit den User-Settings auch 🤔

Vielen Dank im Voraus!

111 Beiträge seit 2011
vor 10 Jahren

Vielleicht hilft dir das hier MSDN - Hinzufügen und Bearbeiten von Ressourcen (Visual C#) Aber Recource Dateien sind eigentlich nicht die gängige Lösung dafür. Meiner Erfahrung nach gibt es immerwieder Savegame und Highscoredateien. Wenn du nicht willst dass man die bearbeiten kann dann speicehr sie doch einfach codiert.
Dann hast du zwar 2 Dateien aber in Anbetracht dessen, dass andere Programme 10000 Dateien umfassen wäre das zumindest für mich noch erträglich. Und man kann die scores auch sichern wenn man will.

Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!

16.806 Beiträge seit 2008
vor 10 Jahren

Eine Exe kann im nachhinein plump gesagt nicht geändert werden und damit auch alle darin enthaltenen Ressourcen - dafür ist dieses Konzept auch nicht gedacht.

Nimm wie truedon sagt eine Klasse, in der Du Deine Ergebnisse speicherst. Serialiser diese Klasse als XML und speicher das Resultat. Die Datei selbst kannst Du anschließend verschlüsseln und vor dem Deserialisieren wieder entschlüsseln.
Beachte, dass der passende Ordner für sowas ProgramData ist und nicht Dein Installationsverzeichnis der Anwendung.

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo User404,

schon früher wurde die gleiche Auskunft gegeben, z.B. in Resource-Files auch während der Laufzeit ändern (gefunden, indem ich bei Google einfach nach deinem Titel gesucht habe).

Sobald der User herausgefunden hat, dass die Daten in der EXE gespeichert werden (was er vermutlich leicht herausfindet, weil wohl alle gängigen Anti-Viren-Programme meckern, wenn sich EXE-Dateien nachträglich ändern) kopiert er eben die EXE- statt der Konfigurationsdatei, um einen alten Highscore zu sichern oder er modifiziert die EXE mit einem HEX-Editor, um den Highscore zu ändern.

Du würdest also nichts gewinnen und würdest gleichzeitig dem Vertrauen in dein Programm durch Warnmeldungen des Anti-Viren-Programms schaden.

herbivore

U
User404 Themenstarter:in
4 Beiträge seit 2014
vor 10 Jahren

Danke für die schnellen Antworten und Links!
Hab es jetzt Codiert erledigt und die eine Datei mehr oder weniger ist wirklich egal. 😃