Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#8

AW: Programm-Update: Dateien löschen

  Alt 22. Jan 2023, 12:55
Wenn Du eine Stringliste einkompilierst könntest Du eventuell auch diesen Ansatz erweitern.

Deine Programm heißt NEMP.EXE.
Die bisherige NEMP.EXE benennst Du im ZIP um, z. B. NEMP_NEU.XXX.
Du erstellst ein neues Programm NEMP.EXE für die Aufräumarbeiten.
Diese Programm wird der Anwender (gewohnheitsgemäß, per ShortCut, Link, ...) starten.
Das Programm räumt beim Start auf, löscht die eigene EXE (also NEMP.EXE), benennt NEMP_NEU.XXX um in NEMP.EXE und startet diese.

Damit ist nach dem ersten Start von NEMP.EXE aufgeräumt und für die Zukunft keine weitere Prüfung erforderlich.

Ob das Löschen der eigenen EXE, das Umbenennen einer zweiten EXE auf den eigenen Dateinamen und deren anschließender Start so ohne weiteres möglich ist, weiß ich nicht. Habe das zwar schonmal realisiert, aber es hat nicht immer zwingend funktioniert.

Das Problem kann man aber mit Hilfe einer temporären Batchdatei lösen.

NEMP.EXE räumt auf.
Erstellet Batchdatei.
Startet Batchdatei.
Beendet sich.
Batchdatei löscht NEMP.EXE
Batchdatei benennt NEMP_NEU.XXX um
Batchdatei startet NEMP.EXE
Batchdatei löscht sich.

Gorb sowas:
Code:
:REM Fuenf Sekunden Pause machen, damit NEMP Zeit zum Beenden hat.
@PING -n 5 127.0.0.1 > nul
:REM Das Aufraeumprogramm loeschen
@DEL NEMP.EXE
:REM Die neue EXE umbenennen
@REN NEMP_NEU.XXX NEMP.EXE
:REM und dann starten,
:REM damit die Batchdatei nicht bis zum Beenden von NEMP.EXE
:REM weiter laeuft, wird per START gestartet.
@start NEMP_NEU.XXX
:REM Batchdatei loescht sich selbst.
@DEL %0
Wenn die Batchdatei minimiert per ShellExecute gestartet wird, sollte das, aus Anwendersicht, unbemerkt ablaufen, lediglich der erste Start wirkt verzögert.

Eine "dauerhafte Aufräumänderung" des eigentlichen Programmes oder eine "dauerhafte Aufräumprüfänderung" im Player wäre damit entbehrlich.
  Mit Zitat antworten Zitat