Como Fazer o Executavel se Auto Deletar após x dias?
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.
O executável roda normal, após x dias ele será auto deletado... tem como fazer isto?
Fico no aguardo.
Helio Nascimento
Curtidas 0
Melhor post
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
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$
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
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
07/12/2005
Debug. Funcionou belezinha o seu código. Parabens pela ideia. Foi genial.
Até breve.
Até breve.
GOSTEI 0
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???
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
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
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