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

07/12/2005

0

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

Helio Nascimento

Responder

Post mais votado

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

Debug
Responder

Mais Posts

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

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

13/12/2005

Helio Nascimento

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

Até breve.


Responder

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

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)])); 
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; 

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

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar