AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [gelöst] Henne Ei Problem - eigene EXE löschen
Thema durchsuchen
Ansicht
Themen-Optionen

[gelöst] Henne Ei Problem - eigene EXE löschen

Ein Thema von moelski · begonnen am 2. Jun 2009 · letzter Beitrag vom 4. Jun 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

[gelöst] Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 14:40
Moin !

Mein eigener Installer wird langsam rund doch ich bin gerade mal wieder auf ein Problem gestoßen ...
Und zwar habe ich im Anwendungsverzeichnis meinen Uninstaller (Uninstall.exe) liegen. Der löscht auch alles was ich ihm aufgetragen habe, aber er kann sich nicht selber löschen - der Zugriff wird in dem Fall verweigert.

Kann mir jemand einen Tip geben wie ich das nun hinbekomme das ich den Uninstaller auch mit löschen kann?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 14:42
Das Thema gab es hier shcon öfter mal. Meistens kam dabei heraus, dass es am einfachsten ist, eine temporäre BAT-datei zu erstellen, die zuerst das Programm löscht und anschließend sich selbst - Batchdateien können das nämlich im Gegensatz zu kompilierten Programmen.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 14:45
Moin !

Zitat:
eine temporäre BAT-datei zu erstellen
Und wie wäre dann der logische Ablauf? Ich starte meinen Unistaller und der Startet dann die BAT?
Oder direkt die BAT starten ?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 14:45
hallo Moelski,

hatten wir das nicht schonmal?
sich selbst löschen kann die EXE nicht, das ginge nur über eine Batchdatei:
Delphi-Quellcode:
Uninstaler
del Uninstaler.exe
natürlich mit den richtigen Laufwerken/Verzeichnissen garniert.

Gruß
K-H

ich bin nicht schnell genug!!!
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 14:51
Es gibt auch eine WinAPI-Funktion, mit der man Dateien zum Löschen markieren kann. Diese werden dann beim Herunterfahren (oder Neustarten) gelöscht.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 14:55
versuch mal
1. Programm starten
2. Alte Datei umbenennen
3. Neue Datei erstellen
4. Programm beenden
5. Neues Programm starten
6. Umbenannte Datei löschen
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 14:57
Moin !

Zitat:
1. Programm starten
2. Alte Datei umbenennen
3. Neue Datei erstellen
4. Programm beenden
5. Neues Programm starten
6. Umbenannte Datei löschen
Wie soll das funktionieren? In dem Fall bekomme ich ja die "neue Datei" nicht gelöscht.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 15:41
Achso, meinte damit, dass beim nächsten Programmstart die Datei gelöscht wird, hab den Anfangstext nicht richtig gelesen, dacht es geht um ne Live Update Funktion...

Und wenn du die Datei nicht nur umbenennst, sondern verschiebst?
Was muss denn sein damit man eine exe nicht löschen kann, exklusiver Zugriff auf die Datei?
Wer hat den Zugriff und kann man den exklusiven Zugriff aufheben?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#9

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 16:56
Wenn der Uninstaller in C:\Programme\MyApp\uninstall.exe wohnt, könnte er sich ins Temp-Verzeichnis kopieren am Ende der Deinstallation, die Kopie ausführen und den Pfad des Original-Uninstallers mitgeben (ParamStr(1)). Die Kopie wartet, bis das Original beendet ist, löscht es dann (und das Verzeichnis MyApp) und legt für sich selbst dann mit MoveFileEx() das Löschen beim Neustart fest.
Ist auch nicht 1A, aber schöner als frickeleien mit Batch-Dateien, wie ich finde.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 17:08
Probiers mal mit ...
Delphi-Quellcode:
function DeleteSelf(): Boolean;
var
  F : File of Byte;
  FP,
  Params: String;
const
  B : String =
    ':loop'#13#10+
    'del /F "%s"'#13#10+
    'if EXIST "%s" goto loop'#13#10+
    'del /F %s';
begin
  Result := False;
  FP := ExtractFilePath( ParamStr(0) );
  {$i-}
  AssignFile( F, FP + '_.bat' );
  Rewrite( F );
  Params := Format( B, [ParamStr(0), ParamStr(0), FP + '_.bat'] );
  BlockWrite( F, Params[1], Length(Params) );
  CloseFile( F );
  {$i+}
  if not( IOResult = ERROR_SUCCESS ) then
    Exit;
  Result := ShellExecute( 0, 'open', pChar( FP + '_.bat' ), nil, nil, 0 ) > 32;
end;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 02:06 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