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 :

[Inno Setup] Comment utiliser une variable ?


Sujet :

Outils Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut [Inno Setup] Comment utiliser une variable ?
    Bonjour.

    Novice en la matière, j'utilise Inno Setup 5.2.3 pour installer des fichiers d'une base de données.

    1) J'aimerais savoir comment créer une variable (de type string ???) dans le script d'installation pour ensuite l'utiliser dans les sections [Setup] et [Files] ?
    Ce qui me permettrait de ne saisir qu'une fois cette information dans le script.

    2) Il n'y a pas d'exécutable dans les fichiers à installer, puisque l'application est déjà pré-installée. J'aimerais cependant lancer le raccourcis qui s'est copié sur le bureau et qui pointe vers un fichier de la base de données (voir section [Run] ?

    Voici le script d'installation utilisé :

    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
    ; Script generated by the Inno Setup Script Wizard 5.2.3.
    
    [Setup]
    AppId={{B9100BE9-753F-40C9-973C-A76923A412A6}
    AppName=CoreliaStock
    AppVerName=CoreliaStock Version 2.2.2
    AppPublisher=DOUDOU Software Co.
    DefaultDirName={pf}\CoreliaStock
    DefaultGroupName=CoreliaStock
    OutputBaseFilename=setup Version 2.2.2
    Compression=lzma
    SolidCompression=yes
    ;WizardImageFile=c:\Image.bmp
    ;WizardSmallImageFile=c:\Image_small.bmp
    
    VersionInfoVersion=Version 2.2.2
    VersionInfoCompany=DOUDOU Software Co.
    VersionInfoCopyright=Copyright © 2009 DOUDOU Software Co.
    
    
    [Languages]
    Name: "french"; MessagesFile: "compiler:Languages\French.isl"
    
    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
    
    [Files]
    Source: "C:\En cours\CORELIASTOCK\CORELIASTOCK - FP9\Version 2.2.2\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    ;Source: "C:\En cours\CORELIASTOCK\CORELIASTOCK - FP9\{AppVerName}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    
    
    [Icons]
    Name: "{group}\CoreliaStock"; Filename: "{app}\"
    Name: "{group}\CoreliaStock.fp7"; Filename: "{app}\CoreliaStock.fp7"
    Name: "{group}\Desinstaller CoreliaStock"; Filename: "{app}\unins000.exe"
    Name: "{commondesktop}\CoreliaStock"; Filename: "{app}\CoreliaStock.fp7"; Tasks: desktopicon
    
    [Run]
    ; Filename: "{app}\CoreliaStock.lnk"; Description: "{cm:LaunchProgram,CoreliaStock}"; Flags: nowait postinstall skipifsilent
    Les zones en rouge sont celles devant contenir la version issue de la variable.
    La zone en vert est là où je bloque pour le lancement du raccourcis.

    Je remercie d'avance celui que me viendra en aide.

    DOUDOU

  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 : 43
    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
    salut,

    pour le 1) voit inno setup preprocesseur
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #define AppVersion "0.70 PR"
     
    [Setup]
    AppVerName=DVD-RB v{#AppVersion}
    pour le 2) j'ai pas compris désolé.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Un grand merci à toi OuiOuiOui pour ta réponse.
    Après install d'IS Pack pour modifier le script, tout fonctionne.

    En ce qui concerne le 2), je reformule le problème différemment :
    Apparemment la section [Run] n'accepte que le lancement de fichier ".exe".
    Comment faire pour lancer un document dont l'application est déjà installée.
    Dans mon cas, un document FileMaker Pro ".fp7". (ce document aurait pu être un document texte .txt, word .doc ou Excel .xls etc...) ???

    Merci d'avance pour ta réponse

    DOUDOU

  4. #4
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Points : 1 935
    Points
    1 935
    Par défaut
    Bonjour,

    En ce qui concerne le 2), je reformule le problème différemment :
    Apparemment la section [Run] n'accepte que le lancement de fichier ".exe".
    Comment faire pour lancer un document dont l'application est déjà installée.
    Peut-être aurait-il valu concevoir, justement lors de la prime installation, un pointage de path, par exemple défini via un INI ou la BdR.

    Bref, d'écrire quelque part le chemin précis de l'exe en question. De cette façon, il est fastoche d'ensuite l'atteindre.

    @+

  5. #5
    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 : 43
    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
    tu passe ton fichier en argument?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Run]
    Filename: "{app}\TEST.exe"; Description: "{cm:LaunchProgram}"; Parameters: "{app}\test.fp7"; Flags: postinstall skipifsilent waituntilidle
    et si ton exe déjà installé n'est pas dans ton dossier app faut le trouver grace à une fonction dans le code. certain exe sont plus façile à trouver comme dit droide si leur emplacement est stocker dans le registre.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour et merci à vous deux.

    Tout fonctionne correctement maintenant.
    Cependant, j'ai mis le chemin partiellement en dur dans le RUN :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Run]
    Filename: "{pf}\FileMaker\FileMaker Pro 9\FileMaker Pro.exe"; Description: "{cm:LaunchProgram,CoreliaStock}"; Parameters : "{app}\Menu.fp7"; Flags: postinstall skipifsilent waituntilidle
    Comment faire pour récupérer et utiliser le chemin de l'appli via un INI ou la BDR ? Je sèche (et je pêche aussi) de ce côté obscure de la programmation...

    DOUDOU

  7. #7
    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 : 43
    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
    faur déjà que l'application ai écrit son emplacement sinon faut la chercher ou demander à l'utilisateur son emplacement.

    par exemple un jeu lors de son installation va ecrire son emplacement dans le registre à un endroit et pour le récuperer exemple:

    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
     
    [*code]
    function settingsdir(): String;
    var
      dir: string;
    begin
      if not RegQueryStringValue(HKLM,'SOFTWARE\EA GAMES\MOHDA En Formation\2.0','Path', dir) then
        begin
        if not RegQueryStringValue(HKLM,'SOFTWARE\EA GAMES\Medal of Honor Allied Assault Breakthrough\2.0','Path', dir) then
          begin
           if not RegQueryStringValue(HKLM,'SOFTWARE\EA GAMES\MEDAL OF HONOR DEBARQUEMENT ALLIE L''OFFENSIVE\2.0','Path', dir) then
            begin
             dir := 'C:\Program Files\EA GAMES\MOHDA';
            end;
          end;
        end;
      Result := dir;
    end;
    et pour l'utiliser:
    {code:settingsdir}

  8. #8
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 815
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 815
    Points : 13 532
    Points
    13 532
    Par défaut
    Normalement, tu devrais simplement pouvoir cocher Application associée si non exécutable (flag shellexec). Le seul problème (si s'en est un pour toi) est que l'appel n'est pas synchronisé (NoWait)

    Sinon depuis la section [Code]:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExec('', ExpandConstant('{app}\filename.fp7'), '', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode)

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Tout est OK maintenant.

    J'ai utilisé la méthode à Andnotor, qui fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Run]
    Filename: "{app}\Menu.fp7"; Description: "{cm:LaunchProgram,CoreliaStock}"; Flags: shellexec postinstall skipifsilent waituntilidle
    Dernière petite question : comment faire pour inhiber la fenêtre de confirmation d'exécution ("Exécuter CoreliaStock") à la fin de l'installation. Je voudrais que le programme s'exécute automatiquement à l'issue de l'install ?

    Merci

    DOUDOU

  10. #10
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 815
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 815
    Points : 13 532
    Points
    13 532
    Par défaut
    Supprime simplement le postinstall.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Je remercie tout ceux qui m'ont aidé dans ce développement.
    Tout fonctionne à merveille.

    A bientôt sur les ondes.....

    DOUDOU

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/08/2007, 09h49
  2. Réponses: 2
    Dernier message: 22/08/2006, 11h28
  3. [WebForms]Comment utiliser une variable de session depuis JavaScript ?
    Par ThunderBib dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 05/05/2006, 14h01
  4. Réponses: 5
    Dernier message: 04/05/2006, 21h02
  5. [sql] comment utiliser une variable global
    Par imedg dans le forum Oracle
    Réponses: 21
    Dernier message: 02/05/2006, 15h21

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