Application - programa que se autodeleta

Top  Previous  Next

Programa que se auto-deleta

 

Crie um programa capaz de excluir-se a si mesmo. Este tipo de programa pode ser útil no caso de você desejar distribuir uma versão demo do seu projeto, totalmente funcional, porém que se delete após a sua utilização, ou seja, pode-se executá-lo normalmente, porém não é possível utilizá-lo uma segunda vez. O seu funcionamento é bem simples: um arquivo .BAT é criado e dentro dele são  utilizados comandos que deletam o arquivo executável da aplicação, assim como o próprio arquivo .BAT.

 

 

Siga os passos abaixo para implementação deste programa:

 

1) Abra uma nova aplicação e crie, na seção public, uma procedure com o nome de DeletaExe;

 

          .

          .

          . 

       

 private

   { Private declarations }

 public

   { Public declarations }

   procedure DeletaExe;

  end;

 

var

   Form1: TForm1;

 

         .

         .

         .

 

 

2) Escreva no corpo da procedure DeletaExe, o seguinte código:

 

procedure TForm1.DeletaExe;

Var Arquivo: TextFile;

begin

   AssignFile(Arquivo,ChangeFileExt(ParamStr(0),'.bat'));

   ReWrite(Arquivo);

   WriteLn(Arquivo,':1');

   WriteLn(Arquivo,Format('Erase "%s"',[ParamStr(0)]));

   WriteLn(Arquivo,Format('If exist "%s" Goto 1',[ParamStr(0)]));

   WriteLn(Arquivo,Format('Erase "%s"',[ChangeFileExt(ParamStr(0),'.bat')]));

   CloseFile(Arquivo);

   WinExec(PChar(ChangeFileExt(ParamStr(0),'.bat')),sw_hide);

   Halt;

end;

 

 

3) Insira no evento OnClose do formulário, uma chamada à DeletaExe:

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

   DeletaExe;

end;

 

 

4) Rode e teste a aplicação.