如何在 Inno Setup 中执行卸载时的批处理文件?
How to execute a batch file on uninstall in Inno Setup?
我正在使用 响应中的代码在安装时(之前、之后)执行我的所有批处理文件。
现在我想执行它们就在用户单击“是”卸载程序时,但找不到执行此操作的方法。它在确认之前执行
这是我在 [Code]
部分的代码:
function InitializeUninstall(): Boolean;
var
ResultCode : Integer;
begin
Result := True;
Exec(ExpandConstant('{app}\scripts\unset.bat'), '', '',
SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
将您的代码移至 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
该部分也在确认后处理,但在卸载任何文件之前。参见 。
请注意,一般情况下,您不应使用批处理文件。您最好用 Pascal 代码编写所有脚本。这样你就可以获得更健壮的代码和更好的错误处理。
请注意,具有讽刺意味的是,您指向的问题被问到 。
我正在使用
现在我想执行它们就在用户单击“是”卸载程序时,但找不到执行此操作的方法。它在确认之前执行
这是我在 [Code]
部分的代码:
function InitializeUninstall(): Boolean;
var
ResultCode : Integer;
begin
Result := True;
Exec(ExpandConstant('{app}\scripts\unset.bat'), '', '',
SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
将您的代码移至 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
该部分也在确认后处理,但在卸载任何文件之前。参见
请注意,一般情况下,您不应使用批处理文件。您最好用 Pascal 代码编写所有脚本。这样你就可以获得更健壮的代码和更好的错误处理。
请注意,具有讽刺意味的是,您指向的问题被问到