![]() |
Eigenes Programm beenden und löschen / Uninstall
Hallo Liebe Delphi Freunde,
ich habe mal wieder ein Problemchen und würde mich über Eure Hilfe und Ideen sehr freuen. Ich schreibe an meiner Uninstall Routine, welche Verknüpfungen und sonstige, programmspezifische Dateien wieder vom System löscht. Nun, am Ende, muss ich mich (mein Programm) ja auch selber löschen und den erstellten Order wieder entfernen. Wie kann ich mich denn nun selber löschen, während das Programm noch arbeitet ? Der Zugriff auf die Datei (meine .exe) bleibt mir ja verwehrt, solange das Programm läuft. Dankeeeee für eure kreativen Ideen im Voraus. :cat: Jasmine |
Re: Eigenes Programm beenden und löschen / Uninstall
Hi...
also ich hab nur 2 Minuten drüber nachgedacht (nicht, daß jemand hier die Profilösung erwartet ;) ) also beim Uninstall erstellst du eine Batchdatei (z.B. Clearfiles.bat) :
Code:
darin löschst du dein Programm und deine Batch
del %DeinProgPfad%\DeinProg.exe
del Clearfiles.bat diese Batch trägst du dann in der Registry unter: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\RunOnce ein. Und nach dem Neustart ist dein Programm verschwunden. |
Re: Eigenes Programm beenden und löschen / Uninstall
RunOnce ... wozu erst beim nächsten Neustart?
Beiträge wie diesen ![]() In diesem Beispiel soll jetzt zwar ein Programm durch 'ne neue Version ersetzt werden - alte Datei (also sich selber) löschen und die neue Datei an die eigene Stelle setzen. Aber es ist ja kein Problem die Scripte dahingehen abzuändern, daß die Datei nur noch gelöscht wird :zwinker: |
Re: Eigenes Programm beenden und löschen / Uninstall
Hi,
Zitat:
Wenn du nur nach einer Lösung suchst: ![]() MfG Marc |
Re: Eigenes Programm beenden und löschen / Uninstall
...das eigene Programm nach dem Beenden löschen?:
![]() |
Re: Eigenes Programm beenden und löschen / Uninstall
gibt's da keine "batchfreie" Lösung? Alle Uninstaller machen das ohne Batch...
Ich hab mir schon mal gedacht dass sich der Uninstaller selbst in ein temporäres Verzeichniss (Papierkorb möglich?) kopiert, und diese Kopie mit dem exename als Parameter startet. Dann beendet es sich. Beim Starten überprüft es, ob es einen Parameter hat (exename), wenn ja, Datei löschen, wenn nein, Normaler Start (Meldungen zeigen wie "wollen sie das Programm wirklich entfernen?") |
Re: Eigenes Programm beenden und löschen / Uninstall
Das Problem ist, dass sich eine EXE-Datei nicht selber löschen kann, im Gegenteil zu einer Batch-Datei. InnoSetup wird das vermutlich auch mit Batchdateien machen, da bleibt ja auch nix übrig.
Nachtrag: Es gibt auch irgendeinen Befehl, um eine Datei beim nächsten Neustart (Also während des Startvorgangs) von Windows löschen zu lassen. |
Re: Eigenes Programm beenden und löschen / Uninstall
Zitat:
|
Re: Eigenes Programm beenden und löschen / Uninstall
man könnte auch einen run-once-Eintrag in die Registry erstellen, der das da aufruft:
Delphi-Quellcode:
zur DLL-Lösung:
%comspec% /c erase < Name der Anwendung >
Die DLL würde das ganze Setup noch'n ganzes Stück größer machen... Gar nich gut für'n Setup. ganz nebenbei hab ich einmal versucht was mitner DLL zu machen, an dem Tag kamem mindestens 10^12 Delphi-Fehlermeldungen :mrgreen:... Seitdem hab ich das Thema nich mehr aufgegriffen |
Re: Eigenes Programm beenden und löschen / Uninstall
Zitat:
![]() (Grund: Kompatibilität zu Programmen, welche die beim Neustart zu löschenden Dateien anzeigen) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 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