IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

Définir les chemins d'installations avec Inno Setup


Sujet :

Outils Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Définir les chemins d'installations avec Inno Setup
    Bonjour à tous,

    Je suis nouveaux sur le forum et si je viens faire appel à vos connaissances c'est parce que j'ai un problème avec Inno setup dont je ne trouve de réponses nulle part.

    J'essaye de créer un setup pour un plugin que j'ai développé pour le logiciel 3ds Max. Je veux que dans mon setup soit défini le chemin dans lequel je veux que le setup installe les fichiers, en occurrence le root de 3ds max. J'ai donc procédé comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    DefaultDirName={reg:HKCU\software\Autodesk\3dsMax,InstallPath|{pf}\Autodesk\3ds Max 2010\}
    ...
    [Files]
    Source: "G:\LH Auto-Rig\Fichiers d'installation\3ds Max\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Mais je suis confronté a deux problemes.

    Si l'utilisateur décide de changer l'emplacement de l'installation inno setup vient me créer forcement un nouveau dossier quoique que je fasse . Or je ne veux pas qu'il créée de nouveaux fichiers, mais juste qu'il vienne coller mon plugin dans un dossier qui existe dejà. En plus si l'utilisateur re-cible le root de 3ds Max je me retrouve avec un chemin de ce style : C:\Program Files\Autodesk\3ds Max 2010\3ds Max 2010\, pourquoi ??

    Autre problème une fois une installation lancée, si l'utilisateur change le chemin d'installation, si je relance l'installation, il garde l'ancien chemin définie dans l'ancienne installation au lieu de revenir a ce que moi j'avais défini a la base, c'est à dire :={reg:HKCU\software\Autodesk\3dsMax,InstallPath|{pf}\Autodesk\3ds Max 2010\}

    Auriez vous des solutions à mes problèmes ? Je vous remercie par avance.

  2. #2
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par ludo2508 Voir le message
    En plus si l'utilisateur re-cible le root de 3ds Max je me retrouve avec un chemin de ce style : C:\Program Files\Autodesk\3ds Max 2010\3ds Max 2010\, pourquoi ??
    moi Je lai résolu comme sa, ce n'est pas parfait mais ça me convient.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    #define MyAppName "My Program"
     
    [code]
    procedure DirEditOnChange(Sender: TObject);
    var
      sResult: String;
    begin
      sResult := (Sender as TEdit).Text;
      StringChangeEx(sResult, '{#MyAppName}\{#MyAppName}', '{#MyAppName}', True);                       
      (Sender as TEdit).Text := sResult;
    end;
     
    procedure InitializeWizard();
    begin             
      WizardForm.DirEdit.OnChange := @DirEditOnChange;
    end;
    Citation Envoyé par ludo2508 Voir le message
    Autre problème une fois une installation lancée, si l'utilisateur change le chemin d'installation, si je relance l'installation, il garde l'ancien chemin définie dans l'ancienne installation au lieu de revenir a ce que moi j'avais défini a la base, c'est à dire :={reg:HKCU\software\Autodesk\3dsMax,InstallPath|{pf}\Autodesk\3ds Max 2010\}
    regarde [Setup]: UsePreviousAppDir

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup de m'avoir répondu.

    Par contre quand j'écris ce que tu me dis j'ai une erreur type:mismatch a la ligne : sResult := (Sender as TEdit).Text;

    Mais de toute façon il y a toujours un probleme. En effet si je comprend bien ton script il va corriger le nom de chemin s'il y a deux fois le meme nom, mais il ne vas pas empecher qu'inno créée un dossier si il n'y a pas deux fois le même nom dans le chemin.

    Moi je veux veux qu'inno setup ne créee vraiment zero dossier jamais, juste reprenne le chemin indiquer par l'utilisateur et y copie mes fichiers

  4. #4
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 419
    Points
    1 419
    Par défaut
    une idée comme sa, met à jour inno.

    pour avoir juste le dossier choisi tu crée ta fonction WizardForm.DirBrowseButton.OnClick
    sa n'ajoutera rien au dossier choisi.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bon merci bien de ta patience et de ton aide, mais malheuresement je n'arrive à rien.

    Je ne comprend pas du tout le script utilisé. Ca ne doit pourtant pas etre bien compliqué qu'inno ne vienne pas rajouter un foutu dossier au nom de chemin choisi a chaque fois que l'on fait "browse".

    Mais personne n'en parle nulle part et je ne toruve pas d'exemple non plus.

    Je vais essayer de m'orienter vers d'autre soft plus simple voir si j'arrive à faire ce que je veux.

    Merci encore.

  6. #6
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 419
    Points
    1 419
    Par défaut
    voila un exemple complet qui ne rajoute pas de dossier.
    sa remplace la boite de sélection de dossier par une standard. Inno est simple à comprendre je trouve moi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    #define MyAppName "My Program"
    #define MyAppVersion "1.5"
    #define MyAppPublisher "My Company, Inc."
    #define MyAppURL "http://www.example.com/"
    #define MyAppExeName "MyProg.exe"
     
    [Setup]
    ; NOTE: The value of AppId uniquely identifies this application.
    ; Do not use the same AppId value in installers for other applications.
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
    AppId={{0AF49F57-4587-4EC3-BB0A-305AD768E478}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    ;AppVerName={#MyAppName} {#MyAppVersion}
    AppPublisher={#MyAppPublisher}
    AppPublisherURL={#MyAppURL}
    AppSupportURL={#MyAppURL}
    AppUpdatesURL={#MyAppURL}
    DefaultDirName={pf}\{#MyAppName}
    DefaultGroupName={#MyAppName}
    OutputBaseFilename=setup
    Compression=lzma
    SolidCompression=yes
     
    [Languages]
    Name: "english"; MessagesFile: "compiler:Default.isl"
     
    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
     
    [Files]
    Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
     
    [Icons]
    Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
    Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
     
    [Run]
    Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
     
    [CustomMessages]     
    english.BrowseDialogLabel=Select a folder in the list below, then click OK.
    ;french.BrowseDialogLabel=Veuillez choisir un dossier de destination, puis appuyez sur OK.
     
    [code]
    procedure NewDirBrowseButtonOnClick(Sender: TObject);
    var
      sResult: String;
    begin
      sResult := WizardForm.DirEdit.Text;
      if BrowseForFolder(ExpandConstant('{cm:BrowseDialogLabel}'), sResult, True) then                   
         WizardForm.DirEdit.Text := sResult;
    end;
     
    procedure InitializeWizard();
    begin             
      WizardForm.DirBrowseButton.OnClick := @NewDirBrowseButtonOnClick;
    end;

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup !!! c'est exactement ça que je cherchais. Super.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/07/2009, 10h53
  2. installer Firebird en silence avec inno setup
    Par Moine dans le forum Outils
    Réponses: 3
    Dernier message: 24/12/2007, 19h29
  3. programme d'installation avec inno setup
    Par abdallahi dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 24/11/2007, 17h46
  4. Install appli Delphi avec Inno Setup 5
    Par User dans le forum Delphi
    Réponses: 5
    Dernier message: 27/03/2007, 22h33
  5. Réponses: 1
    Dernier message: 11/09/2006, 23h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo