2010-05-26 8 views
0

Je crée une application pour mon entreprise. Et l'objectif est de créer un programme d'installation universel qui vérifiera le registre des utilisateurs pour les applications spécifiques installées et, selon ces applications, créer une liste des composants d'installation disponibles dans la fenêtre "Sélectionner les composants". Et c'est le problème particulier avec lequel je suis empilé.Composants basés sur le registre avec Inno Setup

J'ai déjà créé le programme d'installation, mais un utilisateur doit cocher/décocher les composants dont il n'a pas besoin car il n'utilise pas d'application spécifique. Ce n'est certainement pas une bonne façon de faire, je suppose ...

Alors, je demande de l'aide, s'il vous plaît. Pourrait-il être mis en œuvre à travers la fenêtre "Select Components" et comment ou je devrais créer une page personnalisée de l'assistant avec des cases à cocher (encore une fois - Comment)?

Beaucoup de thx à l'avance.

P.S. J'ai déjà utilisé la fonction Vérifier dans mon script, mais dans ce cas, le programme installe automatiquement tous les composants liés aux applications trouvées sur la machine des utilisateurs, et parfois les utilisateurs n'en ont pas besoin ....

Répondre

1

Ceci supprime un composant basé sur une valeur de registre. Vous voudriez modifier ceci pour adapter chaque application que vous essayez d'installer et auriez probablement besoin d'une fonction de vérification pour chaque application.

; -- Components.iss -- 
    ; Demonstrates a components-based installation. 

    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! 

    [Setup] 
    AppName=My Program 
    AppVerName=My Program version 1.5 
    DefaultDirName={pf}\My Program 
    DefaultGroupName=My Program 
    UninstallDisplayIcon={app}\MyProg.exe 
    OutputDir=userdocs:Inno Setup Examples Output 

    [Types] 
    Name: "full"; Description: "Full installation" 
    Name: "compact"; Description: "Compact installation" 
    Name: "custom"; Description: "Custom installation"; Flags: iscustom 

    [Components] 
    Name: "program"; Description: "Program Files"; Types: full compact custom; Flags: fixed 
    Name: "help"; Description: "Help File"; Types: full; Check: IsMyAppInstalled 
    Name: "readme"; Description: "Readme File"; Types: full 
    Name: "readme\en"; Description: "English"; Flags: exclusive 
    Name: "readme\de"; Description: "German"; Flags: exclusive 

    [Files] 
    Source: "MyProg.exe"; DestDir: "{app}"; Components: program 
    Source: "MyProg.chm"; DestDir: "{app}"; Components: help 
    Source: "Readme.txt"; DestDir: "{app}"; Components: readme\en; Flags: isreadme 
    Source: "Readme-German.txt"; DestName: "Liesmich.txt"; DestDir: "{app}"; Components: readme\de; Flags: isreadme 

    [Icons] 
    Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" 

    [Code] 
    function IsMyAppInstalled(): Boolean; 
    Var 
     installed: String; 

    begin 
     if RegQueryStringValue(HKEY_CURRENT_USER, 'Software\MyApp', 
     'Installed', installed) then 
     result := true 
     Else 
     result := false; 
    end; 
+0

Oh mec, j'ai utilisé la fonction de vérification dans [Fichiers] mais je ne pensais pas pouvoir l'utiliser dans la section [Composants] aussi. Merci beaucoup pour votre aide! Je devrais lire plus attentivement le fichier d'aide d'inno: – cyxou

+0

Veuillez remplacer 'si RegQueryStringValue (HKEY_CURRENT_USER, 'Software \ MyApp', 'Installed', installé) puis résultat: = true Sinon résultat: = false;' avec 'result: = RegQueryStringValue (HKEY_CURRENT_USER , 'Software \ MyApp', 'Installé', installé) ' –

0

Qu'est-ce que vous voulez faire va au-delà de la conception Inno Setup, et je pense que vous devez écrire votre propre programme d'installation au lieu d'utiliser un cadre générique d'installation tels que Inno Setup.

+0

Inno Setup supporte les scripts Pascal, donc vous pouvez étendre la fonctionnalité comme vous le souhaitez. –

+0

Les conseils de mirtheil m'ont aidé! Mais récemment, j'ai décidé de déployer mon projet avec WIX .... – cyxou

Questions connexes