AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie kann sich ein Programm selbst ersetzen bzw. löschen?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Spezi1980 · begonnen am 23. Jul 2004 · letzter Beitrag vom 23. Jul 2004
Antwort Antwort
Benutzerbild von Spezi1980
Spezi1980

Registriert seit: 11. Aug 2003
Ort: Dresden OT Cossebaude
71 Beiträge
 
Delphi 2005 Personal
 
#1

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

  Alt 23. Jul 2004, 12:25
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)
Robert
Codito, ergo sum.
>>I code, therefore I am<<
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

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

  Alt 23. Jul 2004, 12:30
Hai Spezi1980,

ich sage mal kurz und bündig : NEIN.

Da Windows die Datei offen hast kannst Du sie nicht ändern/löschen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

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

  Alt 23. Jul 2004, 12:35
Hi!

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


Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 23. Jul 2004, 12:38
Zitat von Sharky:
ich sage mal kurz und bündig : NEIN.
Also die Beta des DP Experten kann es (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.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

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

  Alt 23. Jul 2004, 12:40
Zitat von Spezi1980:
...dass eine laufendes Programm seine exe datei ...
@Sakura:
Problem gelöst aber nicht gemäß der gestellten Aufgabe. Note 6 setzen
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#6

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

  Alt 23. Jul 2004, 12:47
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....
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#7

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

  Alt 23. Jul 2004, 12:56
ne einfach batchdatei die sich selber löschen kann und der drops ist gelutscht, steht sogar so im delphi kochbuch *hüstel
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von Spezi1980
Spezi1980

Registriert seit: 11. Aug 2003
Ort: Dresden OT Cossebaude
71 Beiträge
 
Delphi 2005 Personal
 
#8

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

  Alt 23. Jul 2004, 13:11
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.)
Robert
Codito, ergo sum.
>>I code, therefore I am<<
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#9

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

  Alt 23. Jul 2004, 13:29
Hi!

Geht das nicht mit Shellexecute?

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:10 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