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





Article #16600: Deleting an executable while it is running

 Question and Answer Database

FAQ1600D.txt   Deleting an executable while it is running
Category   :Miscellaneous
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