作为我的游戏复制保护的一部分,安装程序需要在安装过程后自行删除。这段代码:
[Code]
procedure MyAfterInstall();
begin
DeleteFile('F:\TEST_SETUP\setup.exe');
end;
Run Code Online (Sandbox Code Playgroud)
...什么都不做,因为安装程序运行。是否有解决方案可以运行“命令行”或 cmd 来获取安装程序的完整路径(它可能在客户端光盘上的任何地方)并在安装后将其删除?
小智 5
在您的 [CODE] 部分添加以下方法,您就全部设置好了...
[CODE]
procedure CurStepChanged(CurStep: TSetupStep);
var
strContent: String;
intErrorCode: Integer;
strSelf_Delete_BAT: String;
begin
if CurStep=ssDone then
begin
strContent := ':try_delete' + #13 + #10 +
'del "' + ExpandConstant('{srcexe}') + '"' + #13 + #10 +
'if exist "' + ExpandConstant('{srcexe}') + '" goto try_delete' + #13 + #10 +
'del %0';
strSelf_Delete_BAT := ExtractFilePath(ExpandConstant('{tmp}')) + 'SelfDelete.bat';
SaveStringToFile(strSelf_Delete_BAT, strContent, False);
Exec(strSelf_Delete_BAT, '', '', SW_HIDE, ewNoWait, intErrorCode);
end;
end;
Run Code Online (Sandbox Code Playgroud)