在触发 ssPostInstall 步骤的 CurStepChanged 事件之前是否已处理 [Run] 部分?

问题描述 投票:0回答:1

在我的代码中,我使用

[Run]
部分以及
CurStepChanged
事件处理程序在
ssPostInstall
发生时执行一些操作。在伪脚本中是这样的:

[Run]
Filename: "{app}\FileToRun.exe"; Parameters: "/x"

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then 
  begin
    // do some stuff
  end;
end;

我的问题是,哪个是第一个处理的。在触发

[Run]
步骤的
CurStepChanged
事件之前是否已处理
ssPostInstall
部分?

根据我的观察,似乎

[Run]
部分是首先处理的。

inno-setup pascalscript
1个回答
8
投票

确实如此。在触发

[Run]
步骤的
CurStepChanged
事件之前处理
ssPostInstall
部分条目。可以在以下
piece of code
中阅读(评论是我的):

ProcessRunEntries; // <- this processes the [Run] section entries

if RmDoRestart and
   (InitRestartApplications or
    ((shRestartApplications in SetupHeader.Options) and not InitNoRestartApplications)) then
  RestartApplications;

SetStep(ssPostInstall, True); // <- and this triggers the CurStepChanged event
© www.soinside.com 2019 - 2024. All rights reserved.