Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 304617
            [titulo] => Como Fazer o Executavel se Auto Deletar após x dias?
            [dataCadastro] => DateTime Object
                (
                    [date] => 2005-12-07 00:00:00
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 239079
            [status] => A
            [isExample] => 
            [NomeUsuario] => Debug
            [Login] => forum.Debug
            [Apelido] => 
            [Foto] => 
            [Conteudo] => 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


) )

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

Helio Nascimento
   - 07 dez 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.


Post mais votado

Debug
   - 07 dez 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


Ipc$
   - 07 dez 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.


Helio Nascimento
   - 12 dez 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.


Helio Nascimento
   - 13 dez 2005

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

Até breve.


Anovat
   - 06 mar 2006

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


Paullsoftware
   - 07 mar 2006


Citação:
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???


#Código

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
...#Código

if VarHoraDeApagar then
begin
DeletaExe;
end;

é mais ou menos isso :wink:


Claudio
   - 20 mar 2016

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?