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
// 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()
//
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)