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] Une ancienne installation reste en mémoire


Sujet :

Outils Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut [Inno Setup] Une ancienne installation reste en mémoire
    Bonjour,

    J'installe le logiciel à un espace donné, fais certain réglages, puis le supprime. En réinstallant au même endroit avec le même nom, les réglages de la précédente installation sont conservés alors que si j'installe avec un nouveau nom non. Je ne comprends pas pourquoi j'ai ça et où les réglages sont stockées. J'ai supprimé à la main une ligne dans la base de registre (en y allant moi-même), supprimé dans le panneau de configuration, mais ça ne change rien. Peut être que vous pouvez m'aider, je ne sais pas.


    Cdlt

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Les clés de la base des registres ne sont pas supprimées par défaut. Il faut ajouter un flag UninsDeleteKey ou uninsdeletekeyifempty.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    C'est bien le code ci-dessous qu'il faut ajouter?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Registry]
    Root: HKCU; Subkey: "SOFTWARE\nomsociete"; Flags: uninsdeletekey

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    C'est ça.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    mais ça ne fonctionne pas on ne peut pas demander de ne rien écrire dans la base de registre comme ça pas de problème?

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Cette ligne est identique à un ValueType=none qui signifie créer la clé uniquement.

    Mais si elle existe avant l'installation, je doute qu'elle soit supprimée à la désinstallation.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Si je vais à la base de registre et supprime manuellement en faisant clic droit supprimer tout ce qui se rapporte à mon programme ça devrait corriger non? (ça ne corrige pas).
    Je pense que l'installation ajoute plein de chose dans la base de registre que je n'arrive pas à identifier pour supprimer. J'ai téléchargé et utilisé regshot pour faire des comparaisons de la base de registre avant et après installation mais c'est pas donné. Sinon c'est vrai ma machine est infecté =) mais pas ceux des utilisateurs finaux donc si j’enlève l'inscription dans la base de registre ça devrait corriger mon bug.

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Il peut se passer plusieurs choses, en vrac : une installation 32 bits redirigée sous Wow64 (si OS 64 bits) ou non-signée et redirigée sous VirtualStore, etc.
    Dans le cas de HKCU, s'il y a une demande d'élévation de privilèges et que l'utilisateur courant n'est pas administrateur, HKCU correspondra à l'administrateur (donc un autre utilisateur).

    Pour HKCU en Wow64, contrôle si ton app apparaît dans HKEY_CURRENT_USER\SOFTWARE\Wow6432Node.

    Note aussi que modifier HKCU depuis l'installateur n'affectera qu'un seul utilisateur. Si le PC contient plusieurs comptes, c'est cuit pour les autres. Dans ce cas, on passera plutôt par Active Setup qui initialisera HKCU à l'ouverture de session.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    je ne comprends plus rien, tout mon installateur est inutilisable à cause de cette base de registre

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Tu fournis peu d'informations (zéro code) et tout ce que je peux te donner sont des suggestions de contrôle.

    Ton app est 32 ou 64 bits ?
    Ton app est signée ou pas (as-tu un certificat) et si oui, l'installateur est-il signé également ?
    Inno Setup est-il exécuté en admin ?
    Est-ce que l'utilisateur courant est administrateur ?
    Ton app demande-t-elle une élévation de privilèges ?

    Inno Setup ne va rien inscrire d'autres dans la BdR que ce que tu lui dis d'écrire, mis à part les informations de désinstallation bien sûr (celles qui apparaissent dans le panneau de configuration).

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Mon app est 32 bits, il n'est pas signé.
    Mon pc est en 64 bits, je suis en compte administrateur. Non il ne demande pas d'élévation de privilège.

    Mon code est (j'ai modifié les noms des fichiers...):
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    #define MyAppName "mon prog"
    #define MyAppVersion "1.02"
    #define MyAppPublisher "societe"
    #define MyAppURL "http://www.societe.fr/"
    #define MyAppExeName "FR.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={{E0D918EB-E657-435C-BA31-664D6822A87C}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    ;AppVerName={#MyAppName} {#MyAppVersion}
    AppPublisher={#MyAppPublisher}
    AppPublisherURL={#MyAppURL}
    AppSupportURL={#MyAppURL}
    AppUpdatesURL={#MyAppURL}
    DefaultDirName={pf}\{#MyAppName}
    DisableProgramGroupPage=yes
    OutputDir=C:\Users\A\Desktop
    OutputBaseFilename=setup
    SetupIconFile=C:\Program Files (x86)\monprog-images\icone.ico
    Compression=lzma
    SolidCompression=yes
    ;ajouté pour personnaliser les images
    WizardImageFile=C:\Program Files (x86)\monprog-images\logo-grand.bmp
    WizardSmallImageFile=C:\Program Files (x86)\monprog-images\ic_launcher.bmp
    ; ajouté pour définir un Copyright quand on fait un clic droit
    AppCopyright=© 2016 - societe
    ; ajouté pour qu'il n'installe pas automatiquement dans le même répertoire
    UsePreviousAppDir=no
    VersionInfoVersion=1.02
    ;icone affiché dans panneau de configuration lors de la desinstallation
    UninstallDisplayIcon=C:\Program Files (x86)\monprog-images\icone.ico
     
     
     
    [Languages]
    Name: english; MessagesFile: compiler:Default.isl
    Name: french; MessagesFile: compiler:Languages\French.isl
    Name: spanish; MessagesFile: compiler:Languages\Spanish.isl
     
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
     
    [Files]
    Source: C:\Program Files (x86)\mon prog\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
    ;on définit les fichiers selon la langue sélectionnée
    Source: C:\Program Files (x86)\mon prog\FR.exe; DestDir: {app}; Flags: ignoreversion; Languages: french
    Source: C:\Program Files (x86)\mon prog\EN.exe; DestDir: {app}; Flags: ignoreversion; Languages: english
    Source: C:\Program Files (x86)\mon prog\SP.exe; DestDir: {app}; Flags: ignoreversion; Languages: spanish
     
     
     
    [Icons]
    Name: {commonprograms}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
    Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon; Languages: french
    Name: {commondesktop}\{#MyAppName}; Filename: {app}\EN.exe; Tasks: desktopicon; Languages: english
    Name: {commondesktop}\{#MyAppName}; Filename: {app}\SP.exe; Tasks: desktopicon; Languages: spanish
     
    [Run]
    Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}; Flags: nowait postinstall skipifsilent; Languages: french
    Filename: {app}\EN.exe; Description: {cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}; Flags: nowait postinstall skipifsilent; Languages: english
    Filename: {app}\SP.exe; Description: {cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}; Flags: nowait postinstall skipifsilent; Languages: spanish
     
     
    ;on force à écraser les fichiers en cas de nouvelles installations
    [InstallDelete]
    Name: {app}; Type: filesandordirs
     
    ;on force à bien tout désinstaller
    [UninstallDelete]
    Type: filesandordirs; Name: {app}
     
     
    [Registry]
    Root: HKCU; Subkey: Software\societe\{#MyAppName}; Flags: deletevalue uninsclearvalue deletekey dontcreatekey;

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    La première chose à éviter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [InstallDelete]
    Name: {app}; Type: filesandordirs
    Ton script est lancé en admin. Si l'utilisateur choisit C:\Windows, je te laisse imaginer les conséquences

    Code IS : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKCU; Subkey: Software\societe\{#MyAppName}; Flags: deletevalue uninsclearvalue deletekey dontcreatekey;

    Tu ne fais que référencer la clé pour la désinstallation mais ne la crées pas (dontcreatekey).
    deletevalue, uninsclearvalue ne servent à rien sur une clé.

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Ton script est lancé en admin. Si l'utilisateur choisit C:\Windows, je te laisse imaginer les conséquences
    Tu as raison je n'y avait pas pensé, merci d'avoir détecté cette faille. Du coup on dois écrire autant de lignes qu'il y a de fichiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [InstallDelete]
    Name: {app}\a.exe; Type: files
    Name: {app}\a.dll; Type: files
    ...
    Sinon je me suis rendue compte que l'AppId qui était mentionné dans unins000.dat du programme source (en l'ouvrant avec notepad) et celle sur le fichier iss étaient différents, j'ai remplacé celui du iss par l'autre. Je n'ai plus la même erreur. Avant ça m'installais la même que l'ancienne qui était installée dans le même répertoire. Maintenant ça m'installe toujours une même version mais qui ne correspond pas à celle du répertoire source (qui a permit de créer l'exe). Je veux qu'il m'installe avec les mêmes configs qui changeront par rapport au client (qui sont stockés quelque part dans la base de registre) que le programme source. Tu voies peut être d'où vient le bug et pourrait me guider.

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Exe et dll seront supprimés. Inutile de les ajouter à [InstallDelete]. Seuls les fichiers modifiés après installation posent problème et devraient figurer dans cette liste.

    Tu ne devrais pas tout faire en même temps. Commence par l'installation jusqu'à ce que tout soit correctement set-té (fichiers et BdR).
    Ensuite seulement, tu passes à la désinstallation.

    Je n'ai pas trop compris ta deuxième remarque. Deux AppId différents entraînent une double installation (unins000.* et unins001.* dans le répertoire) précédée d'un avertissement ("Le répertoire existe déjà...").

    Mais attention à tes répertoires. Tu compiles les sources depuis C:\Program Files (x86)\mon prog et le répertoire d'installation est {pf}\{#MyAppName} avec {#MyAppName} = mon prog, soit le même répertoire...

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Les répertoires des fichiers sources et de l'install ne sont pas les mêmes en vrai c'est juste que j'ai mal modifié dans le code que j'ai fournis.
    J'ai recrée un fichier iss, mis le répertoire source dans le bureau et là l'installation, la réinstallation... fonctionne à merveille tant qu'on n'installe pas dans programmes files ou programmes. C'est une calvaire d'installer dans programmes files il garde en mémoire alors que dans le bureau non.

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Mais ça veut dire quoi "garder en mémoire" pour toi, exe et dll ne sont pas mis à jour ou ton app à l'exécution utilise d'anciennes données ?

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Mais ça veut dire quoi "garder en mémoire" pour toi, exe et dll ne sont pas mis à jour ou ton app à l'exécution utilise d'anciennes données ?
    Lors de la première installation c'est bien les données de mes fichiers source qui sont affichés dans l'appli. Puis l'utilisateur les modifie et quand il réinstalle au même endroit (un répertoire dans programmes files) les données de la précédente sont gardés et affiché dans l'appli alors qu'il a ré-installé, et ce n'est pas celles de mes fichiers sources de base.

    Les fichiers sont bien mis à jour: en supprimant manuellement le répertoire puis réinstallant avec le même nom de répertoire c'est pareil. Ce n'est dont pas les fichiers exe et dll mais les données de l'ancienne.

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    C'est bien ce que je pensais

    Mais là, le problème vient de ton application et non de Inno Setup. Elle ne contient pas de manifest ce qui entraîne une virtualisation des données. Tu devrais retrouver un répertoire sous C:\Users\<Utilisateur>\AppData\Local\VirtualStore\Program Files (x86).

    Depuis Vista, il faut :
    • éviter d'écrire des données dans Program Files. Il faut les stocker sous %AppData% (par utilisateur) ou %ProgramData% (par station) ;
    • toujours inclure un manifest pour éviter la virtualisation des fichiers et de la base des registres.

  19. #19
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Je suis content comme-ci j'avais trouvé une mine d'or Merci tu as enfin identifié le véritable problème j'aurai pu chercher des mois. Je vais voir ça.

  20. #20
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Encore merci Andnotor pour tout ton aide depuis le début.
    J'ai essayé de résoudre ce problème proprement mais mes possibilités sont limités. J'ai créer un manifest pour obliger à l'installer ailleurs mais comme je n'ai pas accès au source du programme c'est pas possible, à la première installation il installe bien dans appdata mais après en faisant des mise à jour sur le programme il repart sur VirtualStore. Bref le programme actuel est mal programmé. La meilleure solution reste de vider le répertoire du programme dans virtualstore au moins ça fonctionne à tout les coup avec la configuration actuelle.

    Le code qui fonctionne en l'écrivant manuellement est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [InstallDelete]
    Name: "C:\Users\NomUtilisateur\AppData\Local\VirtualStore\Program Files (x86)\NomProgrammeSaisieLorsInstallation"; Type: filesandordirs
    Mais je ne connais pas le NomUtilisateur et le NomProgrammeSaisieLorsInstallation de l'utilisateur X.
    Pour le nom de l'utilisateur j'ai essayé %username% mais ça ne fonctionne pas. Pour le nom du programme j'ai essayé {#MyAppName} mais c'est le nom par défaut que j'ai choisie moi et pas le nom que l'utilisateur a choisi.

    Je ne sais pas si il y a moyen de récupérer ces deux variables dans l'InstallDelete.


    ---------------------
    Edit: pour le nom d'utilisateur j'ai trouvé, c'est {%USERNAME}

Discussions similaires

  1. [V5R4] Réduction des ODP gardée en mémoire
    Par punkoff dans le forum AS/400
    Réponses: 5
    Dernier message: 25/06/2009, 14h44
  2. Réponses: 4
    Dernier message: 15/08/2007, 22h26
  3. Configurer Eclipse avec une ancienne installation de MinGW
    Par millie dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 11/08/2007, 10h14
  4. Réponses: 9
    Dernier message: 18/04/2005, 17h14

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