Fonte: www.activedelphi.com.br
Veja nessa dica de nosso colunista Handem Vogel como implementar a auto-exclusão do programa em execução. Primeiramente, declare o procedimento
procedure TForm1.DeletaExe;
Var
Arquivo: TextFile;
begin
AssignFile(Arquivo, ChangeFileExt(ParamStr(0), '.bat'));
try
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')]));
finally
CloseFile(Arquivo);
end;
WinExec(PChar(ChangeFileExt(ParamStr(0), '.bat')), sw_hide);
Halt;
end;
Agora, no evento onClose do formulário, basta chamar a procedure acima, com o seguinte código:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DeletaExe;
end;
Isto fará com que o executável se "auto-exclua" assim que fechado!
procedure TForm1.DeletaExe;
Var
Arquivo: TextFile;
begin
AssignFile(Arquivo, ChangeFileExt(ParamStr(0), '.bat'));
try
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')]));
finally
CloseFile(Arquivo);
end;
WinExec(PChar(ChangeFileExt(ParamStr(0), '.bat')), sw_hide);
Halt;
end;
Agora, no evento onClose do formulário, basta chamar a procedure acima, com o seguinte código:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DeletaExe;
end;
Isto fará com que o executável se "auto-exclua" assim que fechado!
Nenhum comentário:
Postar um comentário