Почему процедура ShouldSkipPage работает для WelcomePage? - PullRequest
0 голосов
/ 05 марта 2020

В справке Inno Setup написано следующее: enter image description here

Я пишу этот код:

  [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 фактически пропускается. Я читал похожие посты об этой процедуре и о том, что она называется много раз et c. но я все еще не понимаю Похоже, справка не так. Кто-нибудь знает наверняка, как эта процедура работает и почему она вызывается для WelcomePage, игнорируя справочную информацию?

1 Ответ

0 голосов
/ 05 марта 2020

Обновленная документация не перечисляет wpWelcome:

function ShouldSkipPage(PageID: Integer): Boolean;

Мастер вызывает эту функцию события, чтобы определить, является ли или не конкретная страница (указанная PageID) должна отображаться вообще. Если вы вернете True, страница будет пропущена; если вы вернете значение False, страница может отображаться.

Примечание. Эта функция события не вызывается для страниц wpPreparing и wpInstall, а также для страниц, которые программа установки уже определила, следует пропустить (например, wpSelectComponents. в установке, не содержащей компонентов).


Согласно истории версий , это изменилось в 5.3.9 (2010-04-10):

Добавлена ​​новая директива раздела [Setup]: DisableWelcomePage, чтобы скрыть страницу мастера приветствия. Это рекомендуется в соответствии с рекомендациями мастера Aero. Кроме того, функция события ShouldSkipPage теперь также вызывается для wpWelcome.


И на самом деле, текущая версия Inno Setup не показывает эту страницу по умолчанию
См. Страница приветствия не отображается, вместо нее сначала отображается страница SelectDir

...