Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [Patcher] Fragen (https://www.delphipraxis.net/151559-%5Bpatcher%5D-fragen.html)

Tazuchi 23. Mai 2010 01:09


[Patcher] Fragen
 
Hallo Community,

Da ich recht neu bin hier und auch in der Suche nichts gefunden habe stelle ich doch gleich meine ersten Fragen :)
Zu meinem Patcher muss man sagen das er einen Ordner Patchen soll der auch Unterordner mit natlrich mehreren Dateien hat und diese auf ihre größe Überprüfen soll und gegebenfalls Patchen soll ( wenn sie größer oder kleiner sind ). Alle dateien die er Patchen soll er von einem Webserver nehmen ( Eine normale .txt datei die alle Dateinamen enthält mit dem Unterordner davor ( Falls es einen gibt )).

1. Wie kann ich mein Programm sagen wo ich mich befinde? ( soll heißen zum bsp. installiert nicht jeder das Programm unter: "C\Programme\Test" sondern ja auch unter anderen ordnern... )

2. Wie vergleiche ich die Größen am besten auf dem PC mit den Dateien auf dem Webserver? ( soll heißen man kann sie ja per Bytes vergleichen und so weiter...welches ist am effektivsten und wenn es geht ein kleines bsp. :))

3. Wenn er patch muss ich ja die Dateien vorher löschen oder kann ich sie direkt ersetzten?

Ich hoffe ich finde hier meine Antworten und wünsche noch einen schönen Abend und gegebenfalls einen guten Schlaf! ;)

Grüße Tazu.

Edit_1: Natürlich befindet sich der Patcher im Ordner ( Hilft evt bei Frage 1 ) Und die Dateien werden in der .txt untereinander angegeben! ( Hilft evt bei Frage 2)

:coder2:

s.h.a.r.k 23. Mai 2010 01:18

Re: [Patcher] Fragen
 
Guten Abend,

zu 1.: Bei der Installation des Programms kannst du einen Registry-Eintrag anlegen, in dem dein Patcher nachschauen kann. Du brauchst einen zentralen Ort und das geht eben über diese Windows-Möglichkeit.

zu 2.: Wie wäre es mit einem MD5-Hash jeder Datei? So kannst du auch gewährleisten, dass keiner deine Dateien bearbeitet hat, auch nicht auf dem Webserver.

zu 3.: Hier würde ich vor allem erst mal prüfen, ob du die Rechte dafür hast. Danach würde ich erst mal alle in ein Temp-Verzeichnis herunterladen und die MD5-Checksum der Dateien erzeugen, um festzustellen, dass das geklappt hat. Danach dann prüfen, ob Zugriff auf die zu löschenden Dateien besteht und dann die neuen kopieren und aus dem Temp-Verzeichnis entfernen.

Das wären meine Ideen dies bzgl :zwinker:

// edit
Bei meiner Lösung kannst sich der Patcher nicht im selben Ordner befinden, sondern sonst wo. Wenn er sich *garantiert* im selben Ordner befindet, so kannst du über folgenden Code an den Pfad kommen, in dem der Patcher liegt:

Delphi-Quellcode:
ExtractFilePath(Application.ExeName);
//
// es geht auch irgendwie über ParamStr()
//

generic 23. Mai 2010 03:28

Re: [Patcher] Fragen
 
Du solltest den Windows Installer (MSI) einsetzen.
Mit diesen lassen sich auch Patche (MSP) erzeugen.
Mit dieser Technik brauchst du dir um die oben genannten Dinge keine Sorgen mehr machen.

Zum Lesen zum Thema:
  • Entwickler Magazin (Ausgabe: 03.09/15.04.2009) Artikel: MSI-Pakete mit Open-Souce-Software erzeugen Teil 4
  • Entwickler Magazin (Ausgabe: 02.09/12.02.2009) Artikel: MSI-Pakete mit Open-Souce-Software erzeugen Teil 3
  • Entwickler Magazin (Ausgabe: 01.09/10.12.2008) Artikel: MSI-Pakete mit Open-Souce-Software erzeugen Teil 2
  • Entwickler Magazin (Ausgabe: 06.08/15.10.2008) Artikel: MSI-Pakete mit Open-Souce-Software erzeugen
Ich glaube die Patch habe ich in 03.09 beschrieben.

SirThornberry 23. Mai 2010 06:25

Re: [Patcher] Fragen
 
Hallo, bitte eröffne für jede Frage ein eigenes Thema. Das hat den Vorteil, dass du für jede Frage einen aussagekräftigen Titel vergeben kannst was anderen mit gleichem Problem hilft später die Lösung zu finden ohne nochmals das gleiche fragen zu müssen. Und die Leute wissen sofort anhand des Titels ob sie dir helfen können oder nicht wodurch du in kürzester Zeit mehr hilfreiche Antwort bekommst.
Außerdem wird das ein riesigen Durcheinander mit mehreren Fragen und am Ende weiß keiner mehr welche Antwort zu welcher Frage gehört.
Also einfach für jede Frage ein eigenes Thema aufmachen damit alles schön übersichtlich bleibt :)

*** geschlossen ***


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz