【问题标题】:How to execute a batch file on uninstall in Inno Setup?如何在 Inno Setup 中卸载时执行批处理文件?
【发布时间】:2017-11-10 18:55:45
【问题描述】:

我正在使用来自 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; 

【问题讨论】:

    标签: batch-file cmd inno-setup pascalscript


    【解决方案1】:

    将您的代码移至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 代码编写所有内容。这样您就可以获得更健壮的代码和更好的错误处理。

    请注意,具有讽刺意味的是,您指向的问题被问到avoid using batch files in Inno Setup

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 2019-06-14
      • 2014-07-08
      • 2022-10-24
      • 2012-11-16
      • 2016-09-27
      • 2018-05-04
      相关资源
      最近更新 更多