在Inno Setup帮助中,文本为written:
function ShouldSkipPage(PageID: Integer): Boolean;
向导调用此事件函数确定是否特定页面(由
PageID
指定)应完全显示。如果返回True
,则页面将被跳过;如果返回False
,则可能会显示该页面。注意:
wpPreparing
未调用此事件函数,并且wpInstalling
页面,也不适用于安装程序已确定的页面应该跳过(例如,安装中的wpSelectComponents
不包含任何组件)。
我编写此代码:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma2
SolidCompression=yes
OutputDir=userdocs:Inno Setup Examples Output
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
[code]
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if PageID = 1 then
Result := True;
end;
然后我按F7键进入步进模式,我看到立即调用ShouldSkipPage
,PageId
为1,结果为True
,结果实际上跳过了WelcomePage
。我已经阅读过有关此过程的类似文章,并且它被多次调用等等,但我仍然不明白。看起来帮助是错误的。是否有人肯定知道此过程的工作原理,以及为什么WelcomePage
会忽略该帮助信息而调用它的原因?
[Up-to-date documentation未列出wpWelcome
:
function ShouldSkipPage(PageID: Integer): Boolean;
该向导调用此事件函数来确定是否应完全显示特定页面(由PageID指定)。如果返回True,则页面将被跳过;如果返回False,则可能会显示该页面。
注意:wpPreparing和wpInstalling页面,以及安装程序已经确定的页面都不应跳过此事件函数(例如,不包含任何组件的安装中的wpSelectComponents。)>
根据version history,在5.3.9(2010-04-10)中已更改:
添加了新的[Setup]节指令:
DisableWelcomePage
隐藏“欢迎向导”页面。 Aero向导指南建议这样做。 此外,ShouldSkipPage
事件函数现在也被称为wpWelcome
。实际上,当前版本的Inno Setup根本不显示该页面默认值。参见Welcome page not showing, SelectDir page is showing first instead