Inno setup 将“下一步”按钮更改为使用DisableReadyPage指令安装的官方Inno设置代码无效

Inno setup 将“下一步”按钮更改为使用DisableReadyPage指令安装的官方Inno设置代码无效,inno-setup,pascalscript,Inno Setup,Pascalscript,我使用的代码来自: 当使用DisableReadyPage指令禁用“就绪”页面时,它应该更改要安装的下一个按钮标题 [设置] DisableReadyPage=是 [守则] 过程CurPageChanged(CurPageID:Integer); 开始 如果CurPageID=wpSelectProgramGroup,则 WizardForm.NextButton.Caption:=设置消息(msgButtonInstall) 其他的 WizardForm.NextButton.Caption

我使用的代码来自:

当使用
DisableReadyPage
指令禁用“就绪”页面时,它应该更改要安装的下一个按钮标题

[设置]
DisableReadyPage=是
[守则]
过程CurPageChanged(CurPageID:Integer);
开始
如果CurPageID=wpSelectProgramGroup,则
WizardForm.NextButton.Caption:=设置消息(msgButtonInstall)
其他的
WizardForm.NextButton.Caption:=设置消息(msgButtonNext);
结束;
但它不会更改“下一步”按钮标题


正如代码描述所述:

例如,如果新的上次预安装向导页面是选择程序组页面

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

如果将
DisableProgramGroupPage
设置为
no
,解决方案很简单,因为选择目标位置页面总是最后一个。只需将
wpselectprogrammgroup
替换为
wpSelectDir

[代码]
过程CurPageChanged(CurPageID:Integer);
开始
如果CurPageID=wpSelectDir,则
WizardForm.NextButton.Caption:=设置消息(msgButtonInstall)
其他的
WizardForm.NextButton.Caption:=设置消息(msgButtonNext);
结束;
使用
auto
(默认设置),您在升级时不会获得任何选择程序组和选择目标位置,但即使使用
DisableProgramGroupPage
(因为在安装之前不会有任何其他页面),您也可以准备好安装。您可以使用这一事实来为“选择程序组”页面(用于新安装)和“准备安装”(用于升级)使用“安装”

他们代码的另一个问题是,您应该在“Finished”页面上获得Finish按钮(
wpfished
)。他们的代码不关心什么

完整的解决方案是:

过程CurPageChanged(CurPageID:Integer);
开始
{在新安装时,最后一个预安装页面是“选择程序组”。}
{升级时,最后一个预安装页面是“读取以安装”}
{(即使使用DisableReadyPage也强制)}
如果(CurPageID=wpSelectProgramGroup)或(CurPageID=wpReady),则
WizardForm.NextButton.Caption:=设置消息(msgButtonInstall)
{在完成的页面上,使用“完成”标题。}
否则,如果(CurPageID=wpFinished),则
WizardForm.NextButton.Caption:=设置消息(msgButtonFinish)
{在所有其他页面上,使用“下一页”标题。}
其他的
WizardForm.NextButton.Caption:=设置消息(msgButtonNext);
结束;

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

您的屏幕截图显示
wpSelectDir
页面,而在代码中更改
wpSelectProgramGroup
页面的按钮