我正在使用How do you execute command line tools without using batch file in Inno Setup响应中的代码在安装时(之前,之后)执行我的所有批处理文件。
不,我想在用户单击“是”退出时执行,但无法找到方法。它在确认之前执行
以下是[Code]
部分的代码:
function InitializeUninstall(): Boolean;
var
ResultCode : Integer;
begin
Result := True;
Exec(ExpandConstant('{app}\scripts\unset.bat'), '', '',
SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
答案 0 :(得分:3)
将代码移至CurUninstallStepChanged(usUninstall)
。 在确认卸载后触发该事件。
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
ResultCode : Integer;
begin
if CurUninstallStep = usUninstall then
begin
Exec(ExpandConstant('{app}\scripts\unset.bat'), '', '',
SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
end;
虽然它更容易使用[UninstallRun]
section。
[UninstallRun]
Filename: "{app}\scripts\unset.bat"; Flags: runhidden
该部分也会在确认后处理,但在卸载任何文件之前。请参阅Uninstallation order。
请注意,通常,您不应使用批处理文件。你最好用Pascal代码编写所有脚本。这样,您就可以获得更强大的代码和错误处理。