Como Fazer o Executavel se Auto Deletar após x dias?

07/12/2005

Pessoal , preciso da ajuda de vcs. para poder efetuar uma auto deleção.
O executável roda normal, após x dias ele será auto deletado... tem como fazer isto?

Fico no aguardo.


Helio Nascimento

Melhor resposta

07/12/2005

Crie uma procedure
procedure DeletaExe;

procedure TfrmPrincipal.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;
Ai vc pode comparar a data e se a data for igual a data que vc quer, deleta o executavel. Essa Procedure faz com que o exe se auto delete.
Abracos


Debug

Responder Citar

Outras Respostas

07/12/2005

Ipc$

No término da aplicação, vc pode dar um ShellExecute num programa que faz a deleção e neste programa dê um Sleep antes de executar o DeleteFile para que o programa chamador possa terminar.


Responder Citar

12/12/2005

Helio Nascimento

debug - Obrigado pela resposta. É assim que se faz um companheirismo pelos delphi_anos afora!! . Vou testar e te posto aqui os resultados para outros colegas interessados. Muiiito Obrigado.


Responder Citar

13/12/2005

Helio Nascimento

Debug. Funcionou belezinha o seu código. Parabens pela ideia. Foi genial.

Até breve.


Responder Citar

06/03/2006

Anovat

oi desculpem ressucitar o topico mas é que a minha dúvida tem tudo a ver com esse topico...


tipo se eu quisesse mudar pra que, uma hora depois de instalado, o programa se auto deletasse??

aonde que eu mudaria nesse code ae???


Responder Citar

07/03/2006

Paullsoftware

oi desculpem ressucitar o topico mas é que a minha dúvida tem tudo a ver com esse topico... tipo se eu quisesse mudar pra que, uma hora depois de instalado, o programa se auto deletasse?? aonde que eu mudaria nesse code ae???


Crie uma procedure 
procedure DeletaExe; 

procedure TfrmPrincipal.DeletaExe; 
Var Arquivo: TextFile; 
begin 
AssignFile(Arquivo,ChangeFileExt(ParamStr(0),´.bat´)); 
ReWrite(Arquivo); 
WriteLn(Arquivo,´:1´); 
WriteLn(Arquivo,Format(´Erase "¬s"´,[ParamStr(0)&93;)); 
WriteLn(Arquivo,Format(´If exist "¬s" Goto 1´,&91;ParamStr(0)&93;)); 
WriteLn(Arquivo,Format(´Erase "¬s"´,&91;ChangeFileExt(ParamStr(0),´.bat´)&93;)); 
CloseFile(Arquivo); 
WinExec(PChar(ChangeFileExt(ParamStr(0),´.bat´)),sw_hide); 
Halt; 
end; 

o código descrito é para deletar o executavel, não precisa ser alterado, vc é quem vai chamá-lo de acordo com seus critérios, depois de algunas horas, dias, semanas, meses, anos, acessos... vc quem vai ter que optar.

na hora de chamar por exemplo no evento OnQueryClose do form principal
...
if VarHoraDeApagar then
 begin
  DeletaExe;
 end;

é mais ou menos isso :wink:


Responder Citar

20/03/2016

Claudio

Amigos posso usar esse código Assim: tenho uma pasta que tem um arquivo de jogo "unity" quero criar um aquivo que delete esse arquivo unity em 30 dias , esse código serve para isso, si servi como faço?
Responder Citar