我总是使用这段代码来自我删除我的可执行文件。但我认为这是一种可笑的方式。我能做些什么来改善这一点?我猜使用外部批处理是不正确的。下面的代码:
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;
有人可以帮助让它表现出更少的白痴吗?谢谢