Mega Code Archive

 
Categories / Delphi / Examples
 

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;