Главная страница | назад





Article #17634: Trying to delete a running .exe?

 Question and Answer Database

FAQ2634D.txt   Trying to delete a running .exe? 
Category   :Windows API
Platform    :All
Product    :All 32 bit  

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;

7/16/98 4:31:28 PM
 

Last Modified: 01-SEP-99