Einzelnen Beitrag anzeigen

Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#1

SelfDelete Funktion für Deinstallationen oder ähnliches

  Alt 14. Feb 2009, 13:46
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!
  Mit Zitat antworten Zitat