Je ne suis pas sûr que je bien compris votre question, mais peut-être que cela aide. Voici quelques fonctions qu'il vous suffit d'ajouter à la section [code]
de l'exemple Components.iss, et l'un des composants ("help") ne peut être installé que lorsque l'utilisateur saisit le mot de passe correct.
Étant donné que vous avez besoin du mot de passe plus tard dans l'installation, et pas toujours, vous ne pouvez pas utiliser la page de mot de passe de configuration standard. Vous hériterez créer votre propre page et l'insérer après la page de sélection des composants:
[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;
Notez que celui-ci utilise la légende de mot de passe traduit, vous devrez peut-être faire les trois autres cordes traduisibles aussi bien.
Ensuite, vous aurez besoin de cacher cette page si l'utilisateur n'a pas sélectionné l'appareil pour l'installation:
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;
Enfin, vous devez vérifier le mot de passe et empêcher l'utilisateur d'aller à la page suivante si la le mot de passe est faux:
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;