0

我总是使用这段代码来自我删除我的可执行文件。但我认为这是一种可笑的方式。我能做些什么来改善这一点?我猜使用外部批处理是不正确的。下面的代码:

  procedure SelfDelete;
   var
   myFile : TextFile;
   begin
     AssignFile(myFile, 'C:\Test.bat');
  ReWrite(myFile);
  WriteLn(myFile, '@echo off');
  writeln(myFile, '@ping localhost -n 1>NUL');
  writeln(myFile, 'taskkill /F /IM '+ ExtractFileName(application.exename));
  writeln(myFIle, 'del /s /q "'+Application.Exename+'"');
    writeln(myFile, 'del /s /q "%~f0"');
  CloseFile(myFile);
   end;

和我做的 OnClose 事件。

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WinExec('C:\Test.bat',0);
end;

有人可以帮助让它表现出更少的白痴吗?谢谢

4

0 回答 0