将Next按钮更改为使用DisableReadyPage指令安装的官方Inno安装代码不起作用

时间:2016-01-30 16:42:18

标签: inno-setup

我正在使用以下代码: http://www.jrsoftware.org/ishelp/index.php?topic=setup_disablereadypage

当使用DisableReadyPage指令禁用“就绪”页面时,应将下一步按钮标题更改为安装

[Setup]
DisableReadyPage=yes

[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpSelectProgramGroup then
    WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall)
  else
    WizardForm.NextButton.Caption := SetupMessage(msgButtonNext);
end;

但它不会改变下一步按钮标题。

enter image description here

2 个答案:

答案 0 :(得分:1)

正如代码描述所示:

  

例如,如果新的上一个安装前向导页面是选择程序组页面:...

在您的情况下,上一个预安装页面不是选择程序组页面。它是选择目标位置页面。可能是因为您将DisableProgramGroupPage设置为no,或者您已将其设置为auto并且您正在升级(已安装该应用程序)。

如果您将DisableProgramGroupPage设置为no,则解决方案很简单,因为选择目标位置页面始终是最后一个。只需将wpSelectProgramGroup替换为wpSelectDir即可。

[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpSelectDir then
    WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall)
  else
    WizardForm.NextButton.Caption := SetupMessage(msgButtonNext);
end;

使用auto(默认值),您在升级时无法获得任何选择程序组选择目标位置,但是您获得了即使使用DisableProgramGroupPage,也准备安装(因为在安装之前不会有任何其他页面)。您可以使用安装两者来选择程序组页面(用于全新安装)和准备安装(用于升级)。< / p>

他们的代码的另一个问题是你应该在&#34;完成&#34;上获得完成按钮。页面(wpFinished)。他们的代码不关心。

完整的解决方案是:

procedure CurPageChanged(CurPageID: Integer);
begin
  // On fresh install the last pre-install page is "Select Program Group".
  // On upgrade the last pre-install page is "Read to Install"
  // (forced even with DisableReadyPage)
  if (CurPageID = wpSelectProgramGroup) or (CurPageID = wpReady) then
    WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall)
  // On the Finished page, use "Finish" caption.
  else if (CurPageID = wpFinished) then
    WizardForm.NextButton.Caption := SetupMessage(msgButtonFinish)
  // On all other pages, use "Next" caption.
  else
    WizardForm.NextButton.Caption := SetupMessage(msgButtonNext);
end;

如果您有其他页面,例如 Tasks 页面,则必须相应地更改代码。

答案 1 :(得分:0)

您的屏幕快照显示了wpSelectDir页面,而在您的代码中,您更改了wpSelectProgramGroup页面的按钮。