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, un peu plus loins que la faq


Sujet :

Outils Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Points : 26
    Points
    26
    Par défaut Inno setup, un peu plus loins que la faq
    Bonjour,

    Je suis débutant en ce qui concerne delphi et inno setup.

    Je suis nouveau dans mon entreprise, et mon travail est de faciliter le déploiement des logiciels
    et de remplacer le logiciel utilisé actuellement pour compiler nos logiciel sous forme d'installer.

    La personne que je remplace (départ à la retraite) aurait voulu que l'entreprise investisse,
    si possible dans une solution plus récente avec support,
    car plus envie de s'emmerder à comprendre quelque chose.

    Du fait, mon entreprise à laisser trainer jusqu'au départ à la retraite le changement,
    voila pourquoi je viens à vous concernant InnoSetup.

    Aujourd'hui bien que programmeur VC++ / VB,
    on me confie cette tâche sans outils avec l'obligation de faire du gratuit.

    Bien que j'ai déjà utiliser à titre personnel inno setup, j'ai regarder ce qui existait d'autre,
    et j'ai regarder quelle solution serait la mieux placée.

    Mon choix c'est porté sur innosetup car l'assistant permet de faire les bases,
    pour le reste je viens m'informer ici.

    Actuellement il y à des choses que je n'ai pas réussis à faire :

    - utilisation de la section [code] pour définir le fichier à lancer dans la section [run],
    le tout en fonction du type d'os, 32bits / 64bits.
    - enregistrement de fichiers dans le registre
    (j'ai des configuration de logiciel sous forme de .reg faisant plus de 50 lignes).
    - récupération du répertoire d'installation saisie et copie
    et/ou remplacement de fichier dans le répertoire d'installation du logiciel
    (remplacement de fichier ini de configuration / ajout de module / etc ...)
    - utilisation de sérial, avec possibilité de passer le serial en paramètre.

    Pour certain quelques unes de ces questions vont sembler simple,
    je n'ai jamais utiliser autre chose que l'assistant ni coder quoi que se soit en delphi,
    c'est pourquoi je vous pose mes problème aujourd'hui.

    Merci à tout ceux qui prendrons le temps de donné une réponse, cordialement.

  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, déjà tout ce que tu énumère est faisable.
    section run pourquoi savoir si 32 ou 64, section files plutôt tu installe la version 32 ou 64
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [Files]
    Source: "MyProg32.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Flags: ignoreversion; Check: not iswin64;
    Source: "MyProg64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Flags: ignoreversion; Check: iswin64;
    pour les reg si tu ne veux/peux pas utiliser la section registry, section run tu peux faire un reg import mais du coup à la désinstallation faudra spécifier quelle clefs effacer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filename: "reg"; Parameters: "import {app}\test.reg"; Description: "import .reg"; Flags: shellexec
    pour les 2 autres questions c'est vague, section code pour avoir le dossier d'installation c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExpandConstant('{app}');
    pour le serial il existe une option [Setup]: UserInfoPage à adapter selon le besoin.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Points : 26
    Points
    26
    Par défaut Suite
    Merci pour tes réponses précédente, voici les précisions demandées :

    - concernant le sérial, je voudrais que lors de l'installation le client puisse saisir la clef de son logiciel qu'il aurait acheté, clef qui serait différente par client.

    Je pense que ceci s'applique à la section [code] ?

    - concernant la question suivante, je souhaiterais rajouter / remplacer des fichier la ou l'utilisateur à installer son application, à la fin.

    par exemple, remplacer un fichier ini dans le répertoire ou l'utilisateur à installer son logiciel

    ou copier un fichier plugin etc ...

  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 : 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
    pour le serial utilise [Setup]: UserInfoPage et sa par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [Run]
    Filename: "{app}\{#MyAppExeName}"; Parameters: "{code:GetSerial}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
     
    [Code]              
    function GetSerial(Param: String): String;
    begin
      Result := WizardForm.UserInfoSerialEdit.Text;
    end;
    pour la copie etc, à la fin de l'install faut faire sa la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure CurStepChanged(CurStep: TSetupStep);
    begin
      if CurStep = ssPostInstall then
      begin
      //ici
      end;
    end;

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Points : 26
    Points
    26
    Par défaut Merci
    Merci pour toutes tes réponses très constructive, je vais devoir m'y mettre pour essayé, pas tout de suite malheureusement mais jte ferais un retour dès que possible.

    Merci encore pour toutes les réponses.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Points : 26
    Points
    26
    Par défaut Début
    Voila, je me suis lancer dans la création de mes premiers setup évolutif.

    En fait, j'utilise la section run pour installer ces logiciels, des setup existent déjà, je les inclus dans les miens de façon silencieuse pour gagner du temps et ne pas refaire ce qui existe déjà et fonctionne.

    Autour de ça mon script inno setup dois installer un theme, ce theme se trouvent dans :

    %appdata%\roaming\motogest\themes

    (chaque nouvelle version utilise un theme, pour 2012 je dois ajouter le theme en cours).

    J'aurais à faire aussi des plugins, cela se basera sur le même modèle.

    En suite, dans le dossier de l'application je copie le fichier.ini qui charge le theme.


    J'ai donc élaboré du code en ne connaissant pas trop delphi au départ, ce code plante.

    voici le bout de code :

    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
    procedure CurStepChanged(CurStep: TSetupStep);
    var 
      foldertest: String;
    begin
     
     
      if CurStep = ssPostInstall then
      begin
      foldertest:= {userappdataappdata} + '\Roaming\mogogest\Themes';
      if not DirectoryExists(foldertest) then
        CreateDir(foldertest);
     
     
      if not iswin64 then
        foldertest = {pf} + '\motogest\themes';
        if not DirectoryExists(foldertest) then
          CreateDir(foldertest);
     
     
      else
        foldertest = {pf64} + '\mogogest\themes';
        if not DirectoryExists(foldertest) then
          CreateDir(foldertest);
      end;
    end;  
     
    function CopyFile(Source, Destination: String ) : boolean;
    var
      fos : TSHFileOpStruct;
    begin
      FillChar(fos, SizeOf(fos),0);
      with fos do
      begin
        wFunc := FO_COPY;
        pFrom := PChar(Source+#0); 
        pTo   := PChar(Destination+#0); 
        fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT;
      end;
      result := (0 = ShFileOperation(fos));
    end;
     
    end;
    J'ai déjà inclu la fonction qui me permettra de copier le fichier ini et les themes dans leurs dossier respectif.

    A savoir qu'un thème va retrouver une partie dans roaming\motogest (la partie personnalisable par l'utilisateur), l'autre partie va se trouver dans program files x86\motogest\themes.

    Pour le moment je n'essaye que de créer les dossiers s'ils n'existent pas, ça ne fonctionne pas, si quelqu'un peut me donner des tuyo pour la suite c'est bienvenue.

  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
    Pourquoi faire sa dans la section code, utilise la section files sa devrai suffire à te lire.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Points : 26
    Points
    26
    Par défaut
    C'est pas bête, je n'y avais pas pensé.

    Si le répertoire existe pas, inno setup fonctionne comment ?

  9. #9
    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
    la section files crée les dossiers bien sûr avant de mettre les fichiers dedans.
    pour des dossiers vide regarde la section dirs

Discussions similaires

  1. "onmouseover" situé plus loin que l'image src de départ comment faire
    Par xds74 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 07/08/2012, 15h11
  2. JSF et Tableau un peu plus complexe que la norme!
    Par magellan dans le forum JSF
    Réponses: 4
    Dernier message: 27/05/2011, 15h25
  3. Aller un peu plus loin avec sed..
    Par ghostrider95 dans le forum Shell et commandes GNU
    Réponses: 19
    Dernier message: 13/02/2011, 17h42
  4. Réponses: 4
    Dernier message: 21/08/2009, 14h57

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