Delete a running exe

This article demonstrates how an exe can delete itself.

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;

 

Share this article!

Follow us!

Find more helpful articles: