Я не уверен, что полностью понял ваш вопрос, но, возможно, это поможет. Вот несколько функций, которые нужно добавить только в раздел [code]
образца Components.iss , и один из компонентов («помощь») может быть установлен только тогда, когда пользователь вводит правильный пароль. .
Поскольку пароль требуется позже при установке, и не всегда, вы не можете использовать стандартную страницу пароля для установки. Вместо этого вы создадите свою собственную страницу и вставите ее после страницы выбора компонентов:
[Code]
var
PasswordPage: TInputQueryWizardPage;
procedure InitializeWizard();
begin
PasswordPage := CreateInputQueryPage(wpSelectComponents,
'Your caption goes here',
'Your description goes here',
'Your subcaption goes here');
PasswordPage.Add(SetupMessage(msgPasswordEditLabel), True);
end;
Обратите внимание, что здесь используется переведенный заголовок пароля, вам может потребоваться сделать также перевод трех других строк.
Далее вам нужно будет скрыть эту страницу, если пользователь не выбрал компонент для установки:
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := False;
if PageID = PasswordPage.ID then begin
// show password page only if help file is selected for installation
Result := not IsComponentSelected('help');
end;
end;
Наконец, вам нужно проверить пароль и запретить пользователю переходить на следующую страницу, если пароль неверный:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = PasswordPage.ID then begin
// stay on this page if password is wrong
if PasswordPage.Edits[0].Text <> 'my-secret-password' then begin
MsgBox(SetupMessage(msgIncorrectPassword), mbError, MB_OK);
Result := False;
end;
end;
end;