AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte SelfDelete Funktion für Deinstallationen oder ähnliches

SelfDelete Funktion für Deinstallationen oder ähnliches

Ein Thema von Yakumo500 · begonnen am 14. Feb 2009 · letzter Beitrag vom 14. Feb 2009
Antwort Antwort
Yakumo500
Registriert seit: 15. Nov 2008
Hi,

Ich habe mir eine Deinstallation geproggt und da bin ich auf das Problem gestoßen, dass die Deinstallation exe auch gelöscht werden muss.

Deshalb habe ich eine kleine Funktion geschrieben, die mithilfe einer bat Datei die Exe nach dem Beenden löscht.

Hier der Source:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellApi;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure SelfDelete();
var TempDir: string;
    BatFile: TStringList;
begin
  TempDir := GetEnvironmentVariable('Temp');

  BatFile := TStringList.Create;
  BatFile.Add('ping -n 0127.0.0.1 > nul');
  BatFile.Add(':loop');
  BatFile.Add('del "' + Application.ExeName + '" > nul');
  BatFile.Add('if exist "' + Application.ExeName + '" goto loop');
  BatFile.Add('del "' + TempDir + 'selfdelete.bat' + '"');

  BatFile.SaveToFile(TempDir + 'selfdelete.bat');
  BatFile.Free;

  ShellExecute(Form1.Handle, nil, PChar(TempDir + 'selfdelete.bat'), nil, nil, SW_HIDE);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SelfDelete();
end;

end.
Ich hoffe es hilft euch!
 
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#2
  Alt 14. Feb 2009, 14:07
Warum pingst du den localhost an?
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

 
Delphi 10.4 Sydney
 
#3
  Alt 14. Feb 2009, 14:22
Und wieso lässt du das nicht Windows mit MoveFileEx für dich erledigen?

Zitat:
If dwFlags specifies MOVEFILE_DELAY_UNTIL_REBOOT and lpNewFileName is NULL, MoveFileEx registers the lpExistingFileName file to be deleted when the system restarts. If lpExistingFileName refers to a directory, the system removes the directory at restart only if the directory is empty.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin
 
#4
  Alt 14. Feb 2009, 14:30
Zitat von Bernhard Geyer:
Und wieso lässt du das nicht Windows mit MoveFileEx für dich erledigen?
Weil bat ohne Reboot auskommt?
Leo S.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

 
Delphi 10.4 Sydney
 
#5
  Alt 14. Feb 2009, 14:33
Zitat von Meflin:
Zitat von Bernhard Geyer:
Und wieso lässt du das nicht Windows mit MoveFileEx für dich erledigen?
Weil bat ohne Reboot auskommt?
Ob der Anwender das Merkt. Und diese Lösung hat eine Restgefahr das der Virenscanner zuschlägt.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin
 
#6
  Alt 14. Feb 2009, 14:35
Zitat von Bernhard Geyer:
Ob der Anwender das Merkt.
In Zeiten von Ruhezustand und Desktop-Deckel-Schließern (Energiesparmodus) bleibt der Kram dann halt doch mal (mehrere) hundert Tage auf der Festplatte - ist ja auch nicht ganz der Sinn einer Deinstallation...
Leo S.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

 
Delphi 10.4 Sydney
 
#7
  Alt 14. Feb 2009, 14:48
Zitat von Meflin:
In Zeiten von Ruhezustand und Desktop-Deckel-Schließern (Energiesparmodus) bleibt der Kram dann halt doch mal (mehrere) hundert Tage auf der Festplatte ...
Wozu haben wir den den monatlichen MS-Patch-Day . Ich glaube nicht das es irgendeine gepatchen Windows-PC gibt der länger als 1/4 Jahr seit seinem letzten Reboot läuft.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07: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