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

Delphi

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

Helio Nascimento

Curtidas 0

Melhor post

Debug

Debug

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


GOSTEI 1

Mais Respostas

Ipc$

Ipc$

07/12/2005

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.


GOSTEI 0
Helio Nascimento

Helio Nascimento

07/12/2005

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.


GOSTEI 0
Helio Nascimento

Helio Nascimento

07/12/2005

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

Até breve.


GOSTEI 0
Anovat

Anovat

07/12/2005

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???


GOSTEI 0
Paullsoftware

Paullsoftware

07/12/2005

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:


GOSTEI 0
Claudio

Claudio

07/12/2005

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?
GOSTEI 0
POSTAR