Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie kann sich ein Programm selbst ersetzen bzw. löschen? (https://www.delphipraxis.net/26402-wie-kann-sich-ein-programm-selbst-ersetzen-bzw-loeschen.html)

Spezi1980 23. Jul 2004 11:25


Wie kann sich ein Programm selbst ersetzen bzw. löschen?
 
Hallo,

gibt es eine Möglichkeit, dass eine laufendes Programm seine exe datei löschen oder ersetzen kann? (für Update bzw. Deinstall Funktion)

Gruß

(Ps: suche ergab ersmal nix)

Sharky 23. Jul 2004 11:30

Re: Wie kann sich ein Programm selbst ersetzen bzw. löschen?
 
Hai Spezi1980,

ich sage mal kurz und bündig : NEIN.

Da Windows die Datei offen hast kannst Du sie nicht ändern/löschen.

fkerber 23. Jul 2004 11:35

Re: Wie kann sich ein Programm selbst ersetzen bzw. löschen?
 
Hi!

Meinst du sowas?
http://www.delphipraxis.net/internal...ht=uninstaller


Ciao fkerber

sakura 23. Jul 2004 11:38

Re: Wie kann sich ein Programm selbst ersetzen bzw. löschen?
 
Zitat:

Zitat von Sharky
ich sage mal kurz und bündig : NEIN.

Also die Beta des DP Experten kann es :mrgreen: (unter Umwegen)

Einfach so: Erstelle eine kleine Exe-Datei (Consolen-Programm), welche zwei Paramter nimmt. Der erste ist der Name der Datei (1), welche zur Exe werden soll und der zweite der Name der zu ersetzenden Exe (2). Dieses Programm kommt immer als Resource in Deine EXE.

Wenn Du das Update heruntergeladen hast, speicherst Du es unter einem anderen Namen (1). Dann entpackt die alte Version Deiner EXE die Resource und speichert diese. Dann ruft Deine alte EXE dieses Programm mit den entsprechenden Parametern auf und beendet sich selbst.

Jetzt löscht das kleine Update-Programm die alte EXE, benennt die Download-File um und startet diese.

...:cat:...

Sharky 23. Jul 2004 11:40

Re: Wie kann sich ein Programm selbst ersetzen bzw. löschen?
 
Zitat:

Zitat von Spezi1980
...dass eine laufendes Programm seine exe datei ...

@Sakura:
Problem gelöst aber nicht gemäß der gestellten Aufgabe. Note 6 setzen :mrgreen:

mschaefer 23. Jul 2004 11:47

Re: Wie kann sich ein Programm selbst ersetzen bzw. löschen?
 
Sharky hat recht !

Trotzdem gibt es Mechanismen, die soetwas nachbilden.
Vom Prinzip her sei das hier mal zusammengesetzt.

Oldtimer: ist Dein aktuelles Programm
Update : ist Dein neuse Programm
Konverter : Liegt Deinem Updateprogramm bei

1. Oldtimer lädt Update mit einer anderen Filendungg: Update.tmp
2. Wenn Olditmer fertig ist startet es Konverter und beendet sich.
3. Konverter löscht Oldtimer und benennt Update in Oldtimer (Endung) um.
4. Konverter startet Oltdimer mit Parameterfunktion: Oldtimer löscht Konverter nach Zeit.
5. Konverter beendet sich und wird dann von Oldtimer gelöscht.


Zu kompliziert?!?
Ok, da gibt es noch eine Alternative, wo ich aber nicht weiss
wie diese funktioniert:

Komponente: exemod.zip

Grüße // Martin



Ok, da gab es doch gleich mehrere Überschneidungen:
Fazit entweder arbeiten oder in der DP lesen, aber man findet ja immer was interessantes....

phlux 23. Jul 2004 11:56

Re: Wie kann sich ein Programm selbst ersetzen bzw. löschen?
 
ne einfach batchdatei die sich selber löschen kann und der drops ist gelutscht, steht sogar so im delphi kochbuch *hüstel :roll:

Spezi1980 23. Jul 2004 12:11

Re: Wie kann sich ein Programm selbst ersetzen bzw. löschen?
 
Ersteinmal danke für die schnellen und zahlreichen Antworten.

Die Idee mit der Batchdatei gefällt mir sehr gut.

Code:
@echo off
echo selbst löschen
REM macheirgendwas
del %1
ren %2 %1
REM macheirgendwas
echo jetzt wird gelöscht abbrechen mit [Strg + C]
Pause
REM löschen
del %0
REM ende
Problem ist nur wie starte ich diese Batchdatei vom Programm aus? (Meine "altes" Programm läuft dann zum Zeitpunkt des ausführens ja auch noch.)

fkerber 23. Jul 2004 12:29

Re: Wie kann sich ein Programm selbst ersetzen bzw. löschen?
 
Hi!

Geht das nicht mit Shellexecute?

Ciao fkerber


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 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