- - * - WhiteUnicorn - * - -




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >


Frequently Asked Questions

Trying to delete a running .exe?

Question:

How can I delete my executable while it is running?

Answer:

Under Win32, unless you are running from a removable drive, you
cannot delete a running executable. You can have Windows delete the
executable the next time Windows is ran by adding an entry to the
RunOnce key in the Windows registry under:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

You can name the key anything you like, and specify a command line to
another executable or to a dos command passed to command.com.

Example:

uses
  Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
  reg: TRegistry;

begin
  reg := TRegistry.Create;
  
  with reg do begin
    RootKey := HKEY_LOCAL_MACHINE;
    LazyWrite := false;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce',
                false);
    WriteString('Delete Me!','command.com /c del FILENAME.EXT');
    CloseKey;
    free;
  end;
end;



* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >



- - * - Anastasija aka WhiteUnicorn - * - - LJLiveJournal
PFPhotoFile