我尝试在 .exe 的CurStepChanged
过程中执行一个 .exe (CurrentStep = ssPostInstall)
,该 .exe 是该部分的[Files]
一部分。在我看来,好像ssPostInstall
执行了多次——有时甚至在处理安装过程的文件之前。当然,我可以将 .exe 提取到一个临时文件夹,但我想了解这种行为,这令人失望。每次执行时,到达步骤的时刻ssPostinstall
似乎都会有所不同,有时会超过一次。我错过了什么吗?这是我的代码的一部分:
procedure CurStepChanged(CurrentStep: TSetupStep);
var ErrorCode : Integer;
begin
if (CurrentStep = ssPostInstall) then begin
if Exec(ExpandConstant('{app}\{code:getVersionSubdir}\licencing\haspdinst.exe'), '-i', '',SW_SHOW, ewWaitUntilTerminated, ErrorCode) then
begin
if ErrorCode = 0 then else
MsgBox(SysErrorMessage(ErrorCode), mbCriticalError, MB_OK);
end;
end
else begin
MsgBox('Did not work', mbCriticalError, MB_OK);
end;
end;
提前致谢
克里斯