![]() |
Programm-Update: Dateien löschen
Ich stehe vor der etwas blöden Situation, dass beim nächsten Update meines Players (ist noch ne ganze Weile hin, aber der problematische Teil in dem Kontext ist fast fertig) ein paar Dateien überflüssig werden. Die sollen dann weg. Problem ist, dass ich einerseits eine Setup.exe habe (da kann ich ja bei InnoSetup beim Installieren eine Liste von Dateien angeben, die ggf. vorher gelöscht werden sollen), aber auch ein einfaches Zip-Archiv zum entpacken und loslegen (portable Software, ohne Installation). Wenn der User da einfach das neue Archiv in das vorhandene entpackt, bleiben die alten Dateien natürlich erhalten.
Ich sehe da irgendwie keine wirklich schöne Lösung. :gruebel:
|
AW: Programm-Update: Dateien löschen
Du könntest eventuell eine Batchdatei mit ins ZIP packen, die alle Aufräumarbeiten durchführt und sich dann am Ende selbst löscht. Dein Programm müsste dann prüfen, ob die Batchdatei vorhanden ist. Wenn ja, wird sie ausgeführt. Dies führt dazu, dass beim ersten Programmstart einmal aufgeräumt wird.
Nachteil: Es wird quasi auf Ewig (bei jedem Programmstart) geprüft, ob die Batchdatei vorhanden ist. |
AW: Programm-Update: Dateien löschen
Zitat:
Hans |
AW: Programm-Update: Dateien löschen
Zitat:
Sinnvoller wäre eine Lösung, die automatisch einmalig ausgeführt wird und anschließend auch keine Prüfung mehr erfordert, ob sie nun ausgeführt wurde oder nicht. |
AW: Programm-Update: Dateien löschen
Hallo,
warum löschst Du die nicht beim Starten der neuen Software ? MfG |
AW: Programm-Update: Dateien löschen
Zitat:
Beim Installer fällt das jedoch auch wieder raus - denn wenn der Player nach c:\Programme\ installiert wird, dann kann man da nachträglich nichts mehr löschen (zumindest nicht ohne weiteres). Und natürlich hat man dann dauerhaft die Abfrage drin, ob das noch getan werden muss - aber ein Value aus der Ini-Datei zusätzlich auswerten sollte den Start nicht verzögern. :lol: D.h. es wird wohl eine Kombination aus "Installer räumt beim Installieren auf" und "exe aus der Zip räumt beim ersten Start auf". Ob letzteres ne Batchdatei wird, oder eine kleine eincompilierte Stringlist, deren Einträge in einer Schleife gelöscht werden, muss ich nochmal schauen. Falls noch jemand andere Vorschläge hat - immer her damit. 8-) |
AW: Programm-Update: Dateien löschen
Wenn du kein Setup nutzt, welches das löschen könnte,
dann mach es doch einfach beim nächsten Start des Programms. [edit] ups, vergessen zu aktualieren :freak: |
AW: Programm-Update: Dateien löschen
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:
Wenn die Batchdatei minimiert per ShellExecute gestartet wird, sollte das, aus Anwendersicht, unbemerkt ablaufen, lediglich der erste Start wirkt verzögert.
: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 Eine "dauerhafte Aufräumänderung" des eigentlichen Programmes oder eine "dauerhafte Aufräumprüfänderung" im Player wäre damit entbehrlich. |
AW: Programm-Update: Dateien löschen
Zitat:
|
AW: Programm-Update: Dateien löschen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz