Como Fazer o Executavel se Auto Deletar após x dias?
07/12/2005
0
O executável roda normal, após x dias ele será auto deletado... tem como fazer isto?
Fico no aguardo.
Helio Nascimento
Post mais votado
07/12/2005
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
Mais Posts
07/12/2005
Ipc$
12/12/2005
Helio Nascimento
13/12/2005
Helio Nascimento
Até breve.
06/03/2006
Anovat
tipo se eu quisesse mudar pra que, uma hora depois de instalado, o programa se auto deletasse??
aonde que eu mudaria nesse code ae???
07/03/2006
Paullsoftware
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:
20/03/2016
Claudio
Clique aqui para fazer login e interagir na Comunidade :)