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] Installation silencieuse de PostGreSQL sous INNO SETUP


Sujet :

Outils Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut [INNO SETUP] Installation silencieuse de PostGreSQL sous INNO SETUP
    Bonjour tout le monde,

    Je travaille sur une application qui nécessite la présence de PostGreSQL comme base de données, j'étudie pour l'instant la partie installation et j'utilise pour ce fait Inno setup, je souhaite intégrer PostGreSQL à cette installation et faire en sorte que l'installation de ce dernier se fasse d'une manière silencieuse.

    Après quelques recherche sur internet j'ai pu trouver cette requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    msiexec /i postgresql-8.0.0-rc1-int.msi  /qr INTERNALLAUNCH=1 ADDLOCAL=server,psql,docs SERVICEDOMAIN="%COMPUTERNAME%"
            SERVICEPASSWORD="SecretWindowsPassword123" SUPERPASSWORD="VerySecret" BASEDIR="c:\postgres" TRANSFORMS=:lang_de
    Qui permet (d'après les explications qui ont mises) d'installer le serveur, le psql et la documentation sur le dossier c:\postgres, comme un service, avec un username spécifique aussi bien qu'un mot de passe et la langue serait en Allemand.

    j'ai essayé d'intégrer ce code sur inno setup mais ça n'a pas fonctionné.
    Pour l'instant, voilà ce que j'ai comme 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
    [Setup]
    AppId={{9DC87461-145D-4987-B4DE-000C56E30E49}
    ; Le nom "commercial" de votre application qui sera utilisé dans le titre des fenêtres et les dialogues principaux
    AppName=silent
    DefaultDirName={pf}\silent
    ; Le nom et la version de votre programme (visible dans la page d'accueil)
    AppVerName=silent version 0.0
    CreateAppDir=no
    DisableProgramGroupPage=yes
    ; Le groupe de programme d'installation par défaut, dans le menu "Démarrer"
    DefaultGroupName=silent
    UninstallDisplayIcon={app}\silent.exe
    WindowVisible=yes
    ; Définir le répertoire d'enregistrement du programme d'installation compilé
    OutputDir=userdocs:Examples Output
    InfoBeforeFile=C:\Documents and Settings\user\Mes documents\documents moi\Infos Programme.txt
    ; Définir un Copyright
    AppCopyright=Copyright© 2009 novadecision
    ; Personnaliser les images des fenêtres de l'installateur
    WizardImageFile=C:\Documents and Settings\user\Mes documents\documents moi\Mes images\bebe.bmp
    WizardSmallImageFile=C:\Documents and Settings\user\Mes documents\documents moi\Mes images\photo.bmp
    AppPublisher=Nova Decision, Inc.
    OutputBaseFilename=setup silent
    Compression=lzma
    SolidCompression=yes
     
    [Languages]
    Name: english; MessagesFile: compiler:Default.isl
    Name: french; MessagesFile: compiler:Languages\French.isl
     
    ;ajouter tous les dossiers ou fichiers devant être joints à l'application
    [Files]
    Source: compiler:bebedrole.bmp; Flags: dontcopy
    Source: C:\Documents and Settings\user\Mes documents\documents moi\download\postgresql-8.3.msi; DestDir: {app}; Flags: ignoreversion
    ;permettre de définir des tâches à exécuter ou non, suivant les choix de l'utilisateur
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
     
    ; Définir les icônes à installer
    [Icons]
    Name: {group}\silentExemple; Filename: {app}\postgresql_8.3.msi
    Name: {group}\{cm:ProgramOnTheWeb,silent}; Filename: http://www.novadecision.com/
    Name: {group}\{cm:UninstallProgram,silent}; Filename: {uninstallexe}
    Name: {commondesktop}\silentExemple; Filename: {app}\postgresql; Tasks: desktopicon
     
    ; Inscrire dans le registre des informations à l'installation
    [Registry]
    ; Inscrire dans le Path la nouvelle clé de registre.
    Root: HKLM; SubKey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment\; ValueType: string; ValueName: Path; ValueData: "{reg:HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\,Path};{app}"
     
    [Run]
    Filename: {app}\postgresql-8.3.msi; Parameters: /VERYSILENT
    Mais j'obtiens comme erreur:
    Impossible d'exécuter le fichier: C:\WINDOWS\postgresql-8.3.msi
    CreateProcess a échoué; code 193. %1 n'est pas une application Win32 valide



    que dois-je faire et comment puis-je intégrer la requête sous Windows.

    Merci d'avance

    Cordialement

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    A lire ce message d'erreur:
    Impossible d'exécuter le fichier: C:\WINDOWS\postgresql-8.3.msi
    Visiblement lors de l'appel de msiexec celui-ci cherche le .msi dans le dossier Windows.

    Dans la section Run, essaye de faire un appel direct à msiexec en lui transmettant le .msi en paramètre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [Run]
    filename: msiexec.exe parameters: /i {app}\postgresql-8.0.0-rc1-int.msi  /qr INTERNALLAUNCH=1 ...
    A tester.

    @+ Claudius

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    salut, en fait j'ai déjà essayé ça mais ça m'a donné que des erreurs en code.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    Rebonjour,

    En pensant à appeler la commande DOS sous inno setup voila ce que j'ai ajouté dans la section 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     
    //Executer une commande dos
     
    function ExecuteCommande(Commande: String; Attente : Boolean): Boolean;
      Var
        //Pendant la compilation il comprend pas PSecurityAttributes
        lpsaProcess, lpsaThread : PSecurityAttributes;
     
        StartupInfo   : TStartupInfo;
        ProcessInfo   : TProcessInformation;
        AddrCmd       : Array [0..255] Of Char;
        ExitCode      : DWord;
      begin
        FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
        with StartupInfo do
        begin
          cb          := SizeOf(TStartupInfo);
          dwFlags     := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
          wShowWindow := SW_HIDE;
        end;
     
        New(lpsaProcess);
        New(lpsaThread);
     
        lpsaProcess^.nLength              := SizeOf(lpsaProcess^);
        lpsaProcess^.lpSecurityDescriptor := Nil;
        lpsaProcess^.bInheritHandle       := True;
     
        lpsaThread^.nLength              := SizeOf(lpsaThread^);
        lpsaThread^.lpSecurityDescriptor := Nil;
        lpsaThread^.bInheritHandle       := True;
     
        StrPCopy(AddrCmd, Commande);
        Result := CreateProcess(nil, AddrCmd, lpsaProcess, lpsaThread, False,
                              STARTF_FORCEONFEEDBACK, nil, nil, StartupInfo, ProcessInfo);
        if not Result then Result:=(GetLastError>10000);
          Dispose(lpsaProcess);
          Dispose(lpsaThread);
        if Result then
        begin
          while Attente do
          begin
            // Solution d'attente 1
            Sleep(500);
            GetExitCodeProcess(ProcessInfo.hProcess, ExitCode);
            if ExitCode<>STILL_ACTIVE then break;
     
            // Solution d'attente 2
            // WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
     
          end;
          CloseHandle(ProcessInfo.hThread);
          CloseHandle(ProcessInfo.hProcess);
        end;
      end;
     
    function BuildDosCommandStr(Command:string):string;
      begin
        result:='cmd /c "'+Command+'"';
      end;
     
    procedure TForm1.Button8Click(Sender: TObject);
      begin
        ExecuteCommande(BuildDosCommandStr('msiexec /i postgresql-8.3.0.msi  /qr INTERNALLAUNCH=1 ADDLOCAL=server,psql,docs SERVICEDOMAIN="%COMPUTERNAME%"
            SERVICEPASSWORD="SecretWindowsPassword123" SUPERPASSWORD="VerySecret" BASEDIR="c:\postgres" TRANSFORMS=:lang_de'),TRUE);
      end;
    Ca à fonctionner pour une personne qui chercher à utilisé une commande dos sous delphi. Est ce que quelqu'un pourrai m'expliquer pourquoi ça ne fonctionne pas chez moi?

    Merci d'avance pour vos réponse

    Cordialement

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    bonjour tout le monde,
    Après plusieurs recherche j'ai pu avancé un peu sur mon projet. voilà ce que j'ai fait:

    J'ai travaillé sous l'invité commande afin de faire une installation de postGreSQL sous le cmd.

    En écrivant ces deux commandes on obtient normalement ce qu'on veut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //créer un compte utilisateur postgres
    net user postgres mot_de_passe
    //installer PostgreSQL
    msiexec /i "C:\Documents and Settings\user\Mes documents\documents fadoua\download\postgresql-8.3-int.msi" /qr INTERNALLAUNCH=1 ADDLOCAL=server,psql,pgadmin DOINITDB=1 SERVICEACCOUNT="postgres" SERVICEPASSWORD="mot_de_passe" SUPERPASSWORD="Secret" SERVICEDOMAIN="%ComputerName%"
    les commandes permettent effectivement d'installer postgresql-8.3-int.msi dans votre machine.

    j'ai essayé d'intégrer ce que j'ai dans mon ISTOOL et c'est la ou je trouve des problèmes.

    voici mon code sous inno setup:

    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
     
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    [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={{9C7C2D27-75A9-452E-8C03-907A859FF3BB}
    AppName=My Program
    AppVerName=My Program 1.5
    AppPublisher=My Company, Inc.
    AppPublisherURL=http://www.example.com/
    AppSupportURL=http://www.example.com/
    AppUpdatesURL=http://www.example.com/
    DefaultDirName={pf}\My Program
    DefaultGroupName=My Program
    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:\Documents and Settings\user\Mes documents\documents fadoua\download\postgresql-8.3-int.msi"; DestDir: "{app}"; Flags: ignoreversion
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
     
    [Icons]
    Name: "{group}\My Program"; Filename: "{app}\postgresql-8.3-int.msi"
    Name: "{commondesktop}\My Program"; Filename: "{app}\postgresql-8.3-int.msi"; Tasks: desktopicon
     
    [Run]
    Filename: c:\windows\system32\msiexec.exe; parameters: " /i ""C:\Documents and Settings\user\Mes documents\documents fadoua\download\postgresql-8.3-int.msi"" /qr INTERNALLAUNCH=1 ADDLOCAL=server,psql,pgadmin DOINITDB=1 SERVICEACCOUNT=""postgres"" SERVICEPASSWORD=""mot_de_passe"" SUPERPASSWORD=""Secret"" SERVICEDOMAIN=""%ComputerName%"" "
    malheureusement, à chaque fois que je veux exécuter cette installation on m'envoie un message d'erreur disant que : User account %ComputerName\postgres does not exist

    je pense que je dois créer la session postgres sou inno setup et j'arrive pas a passer de le commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    net user postgres mot_de_passe
    à une écriture reconnu par inno setup.


    je suis proneuse de toute supposition.

    J'espère que j'étais clair. J'attens vos réponses avec intérêt.

    Amicalement

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 933
    Par défaut
    Si ça fonctionne par le prompt, tu peux faire quelque chose comme ceci.

    Tu n'est pas obligé(e) de spécifier System32.
    Attention aussi au fichier msi que tu extrais dans {app} et non Mes documents. (En fait, il devrait être dans {tmp} et être supprimé après installation)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [Run]
    Filename: net.exe; parameters: "user postgres mot_de_passe"
    Filename: msiexec.exe; parameters: "/i ""{app}\postgresql-8.3-int.msi"" /qr INTERNALLAUNCH=1 ADDLOCAL=server,psql,pgadmin DOINITDB=1 SERVICEACCOUNT=""postgres"" SERVICEPASSWORD=""mot_de_passe"" SUPERPASSWORD=""Secret"" SERVICEDOMAIN=""%ComputerName%"""

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    bonne nouvelle,

    Enfin l'installation à bien était faite. Bon récapitulation (pour les intéressés biens sur):

    Bonjour,

    Pour ceux qui desire installer PostgreSQL silencieusement sous Inno setup:

    - créer un fichier .bat (je l'ai nommé silentPostgresInstall.bat) ou on ajoute les lignes de commande qui permetent:
    - De créer un compte utilisateur postgres
    - D'installer postgreSQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    net user postgres fadoua /add
    msiexec /i "C:\Documents and Settings\user\Mes documents\documents fadoua\download\postgresql-8.3-int.msi" /qr INTERNALLAUNCH=1 ADDLOCAL=server,psql,pgadmin DOINITDB=1 SERVICEACCOUNT="postgres" SERVICEPASSWORD="fadoua" SUPERPASSWORD="Secret" SERVICEDOMAIN="%ComputerName%"
    dans Inno setup ajouter les lignes de code suivantes dans la session Run:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filename: "C:\Documents and Settings\user\Mes documents\documents fadoua\silentPostgresInstall.bat"; parameters: /VERYSILENT

    N'oublier pas de vérifier si PostGreSQL est déjà installé ou pas.

    Si quelqu'un à des questions qu'il n'hésite pas à me contacter.

  8. #8
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 22
    Par défaut Install silencieux
    Moi j'ai postgres 9.1.1 mais c'est un .exe lorsque j'execute le script j'ai un message disant que windows n'arrive pas à lire le package vérifiez k'il est en bon état besoin d'aide svp

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/08/2014, 16h12
  2. Réponses: 2
    Dernier message: 05/03/2008, 10h32
  3. Réponses: 0
    Dernier message: 04/02/2008, 13h57
  4. Comment installer et configurer PostgreSql sous RedHat Enterprise 5
    Par jlassiramzy dans le forum RedHat / CentOS / Fedora
    Réponses: 6
    Dernier message: 13/12/2007, 13h49
  5. installation silencieuse client oracle8i sous windows 2KXP
    Par deftonesMichael dans le forum Installation
    Réponses: 5
    Dernier message: 24/01/2006, 17h28

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