1

J'ai ce petit morceau de code qui se produit à l'étape post-installation:Vérifiez au moment de l'exécution si le programme d'installation a Uninstallable = True?

procedure CurStepChanged(CurStep: TSetupStep); 
begin 

    if CurStep = ssPostInstall then begin 
    CreateSymbolicLink(ExpandConstant('{app}\Uninstall.vsf'), ExpandConstant('{cf}\Inno Setup\Carbon.vsf'), 0) 
    CreateSymbolicLink(ExpandConstant('{app}\Uninstall.dll'), ExpandConstant('{cf}\Inno Setup\VclStylesinno.dll'), 0) 
    end; 

end; 

Je voudrais accueillir pour créer les liens symboliques que si le programme d'installation a Uninstallable=True, comment je pourrais chek que de pascals scénario?.

Notez que je prétends également le déterminer dans des scénarios comme celui-ci: Uninstallable=not IsTaskSelected('task name').

Répondre

2

Utilisez un #define pour stocker la valeur. Vous pouvez en vérifier la valeur dans la section de code en utilisant ExpandConstant.

Exemple:

#define MyAppName "My Program" 
#define MyAppVersion "1.5" 
#define Uninstallable "no" 

[Setup] 
AppName={#MyAppName} 
AppVersion={#MyAppVersion} 
Uninstallable={#Uninstallable} 

[Code] 
procedure CurStepChanged(CurStep: TSetupStep); 
begin  
    if CurStep = ssPostInstall then begin 
    if LowerCase(ExpandConstant('{#Uninstallable}')) = 'yes' then 
    begin 
     CreateSymbolicLink(ExpandConstant('{app}\Uninstall.vsf'), ExpandConstant('{cf}\Inno Setup\Carbon.vsf'), 0); 
     CreateSymbolicLink(ExpandConstant('{app}\Uninstall.dll'), ExpandConstant('{cf}\Inno Setup\VclStylesinno.dll'), 0); 
    end; 
    end;  
end;  
+0

Thankyou, mais ce qui se passe si j'ai 'Uninstallable = pas IsTaskSelected ('nom de la tâche')'? dans ce cas j'imagine ne peut pas stocker la valeur dans une constante au sommet du script. – ElektroStudios

+0

Comment définir 'Uninstallable' à l'exécution? Si elle est définie sur "yes", un programme de désinstallation sera créé lors de la compilation. Cela n'a donc aucun sens d'essayer de définir la valeur par programme. Peut-être que je me trompe. – Wosi

+0

Voir ce que je veux dire: http://www.jrsoftware.org/ishelp/topic_setup_uninstallable.htm, un programme de désinstallation est inclus, mais il peut être étendu de manière sélective au disque ou non en fonction de la tâche que l'utilisateur change. – ElektroStudios