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] Problème DeleteFile


Sujet :

Outils Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut [Inno Setup] Problème DeleteFile
    Bonjour,

    Et oui encore moi, toujours des problèmes

    Je suis donc rendu a un endroit dans mon installation ou je dois supprimer un fichier si celui-ci existe :

    voici la partie du code qui devrait le réaliser :

    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
    Procedure CurStepChanged(CurStep : TSetupStep);
    var
    ErrorCode,Wait : Integer;
     
    begin 
     
          begin
          if CurStep = ssInstall then
          ShellExec('open',ExpandConstant('{pf32}\sc.exe'),'stop FirebirdServerDefaultInstance','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
          Shellexec('open',ExpandConstant('{pf32}\sc.exe'),'stop FirebirdGuardianDefaultInstance','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
          end;
          begin
          if CurStep = ssInstall Then
          if (FileExists('{pf}\Firebird\Firebird_2_0\unins000.exe')) Then
          DeleteFile(ExpandConstant('{app}')+ 'unins000.exe');
          end;
          begin
          if CurStep = ssInstall then
          Wait := 500 ;
          end;
          begin 
          if CurStep = ssInstall Then
          if (FileExists('{app}\BDD\test2.fdp'))Then 
          DeleteFile(ExpandConstant('{app}')+'\BDD\*');
          //MANQUE CONDITION POUR UPGRADE LA BARRE DE PROGRESSION
          end;
    end;
    Or, la partie FileExists marche, mais ensuite, le deletefile ne s’exécute pas,pour les 2 programmes ...
    Quel est mon erreur ?

    Bonne fin de journée a vous,
    Cordialement
    Ayouten

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    Il n'y a aucune réflexion dans ce que tu écris

    J'ai juste ajouté quelques commentaires à ton code, à toi de trouver les solutions.

    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
    Procedure CurStepChanged(CurStep : TSetupStep);
    var
    ErrorCode,Wait : Integer;
     
    begin 
     
          begin
          if CurStep = ssInstall then
          ShellExec('open',ExpandConstant('{pf32}\sc.exe'),'stop FirebirdServerDefaultInstance','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
     
      //Cette ligne sera exécutée à chaque CurStepChanged
          Shellexec('open',ExpandConstant('{pf32}\sc.exe'),'stop FirebirdGuardianDefaultInstance','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
          end;
          begin
          if CurStep = ssInstall Then
     
      //{pf} n'est pas un répertoire valide
          if (FileExists('{pf}\Firebird\Firebird_2_0\unins000.exe')) Then
     
      //N'est pas un fichier valide
          DeleteFile(ExpandConstant('{app}')+ 'unins000.exe');
          end;
          begin
          if CurStep = ssInstall then
     
      //N'est pas une pause, hein ?
          Wait := 500 ;
          end;
     
          begin 
          if CurStep = ssInstall Then
     
      //{app} n'est pas un répertoire valide
          if (FileExists('{app}\BDD\test2.fdp'))Then 
     
      //DeleteFile ne supportent pas les caractères génériques
          DeleteFile(ExpandConstant('{app}')+'\BDD\*');
          //MANQUE CONDITION POUR UPGRADE LA BARRE DE PROGRESSION
          end;
    end;
    Est-ce que tu penses vraiment que Firebird sera désinstallé en supprimant unins000.exe
    Et si c'est la version 2.1 qui est présente ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    [QUOTE]
    Est-ce que tu penses vraiment que Firebird sera désinstallé en supprimant unins000.exe
    [\QUOTE]

    Je me suis aussi posé la question, mais d'âpres mon tuteur on veut juste supprimer cela si il se trouve dans ce répertoire

    Et si c'est la version 2.1 qui est présente ?
    Le logiciel fonctionne uniquement sous Firebird_2_0 donc impossible, si nous passons a Firebird_2_1, il faudra en effet tous modifier

    Ensuite, Je te remercie pour tes commentaires j'ai modifier quelques trucs grâce a tes commentaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        begin
              if CurStep = ssInstall then
              ShellExec('open',ExpandConstant('{pf32}\sc.exe'),'stop FirebirdServerDefaultInstance','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
          end;
          begin
              if CurStep = ssInstall then
              Shellexec('open',ExpandConstant('{pf32}\sc.exe'),'stop FirebirdGuardianDefaultInstance','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
          end;
    J'ai donc Créé tous simplement 2 begin pour l’empêcher de se déclencher a chaque CurStep .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       begin
              if CurStep = ssInstall Then
              if (FileExists('{pf64}\Firebird\Firebird_2_0\unins000.exe')) Then
              DeleteFile(ExpandConstant('{pf64}\Firebird\Firebird_2_0\unins000.exe'));
          end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       begin
          if CurStep = ssInstall then
          sleep(500);    
     
          end;
    Pour ce qui du deletefile, je ne comprend pas ou sont mes erreurs ...j'ai modifié les répertoires mais rien n'y change

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (FileExists(ExpandConstant('{pf64}\Firebird\Firebird_2_0\unins000.exe')) Then
      DeleteFile(ExpandConstant('{pf64}\Firebird\Firebird_2_0\unins000.exe'));
    Les begin..end sont là pour délimiter un bloc, donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if CurStep = ssInstall then
    begin
      ShellExec('open',ExpandConstant('{pf32}\sc.exe'),'stop FirebirdServerDefaultInstance','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
      Shellexec('open',ExpandConstant('{pf32}\sc.exe'),'stop FirebirdGuardianDefaultInstance','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
     
      if (FileExists(ExpandConstant('{pf64}\Firebird\Firebird_2_0\unins000.exe')) Then
        DeleteFile(ExpandConstant('{pf64}\Firebird\Firebird_2_0\unins000.exe'));
     
      sleep(500);  
     
      ...      
    end;

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    Salut et merci pour tes réponses,

    Cepandant j'ai encore un problème, concernant le DeleteFile,

    Le fichier existe bien dans le répertoire donné cependant celui-ci n'est pas supprimé

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if (FileExists('{pf64}\POLYSOUDE\P6\BDD\test2.fdb'))Then 
    DeleteFile(ExpandConstant('{pf64}\POLYSOUDE\P6\BDD\test2.fdb'));
    LE fichier a beau exister, celui-ci ne seras jamais supprimer

    Voici son repertoire : C:\Program Files (x86)\POLYSOUDE\P6\BDD

    Quel est le problème ??

    Cordialement
    Ayouten

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour

    {pf64} et C:\Program Files (x86)\ rien ne vous choque ?


    http://www.jrsoftware.org/ishelp/index.php?topic=consts
    Citation Envoyé par Inno Setup Help
    {commonpf32}
    Fichiers de programme 32 bits. Chemin du répertoire Program Files du système 32 bits, généralement 'C: \\ Program Files' sous Windows 32 bits et 'C: \\ Program Files (x86)' sous Windows 64 bits.

    {commonpf64}
    Windows 64 bits uniquement: fichiers de programme 64 bits. Chemin du répertoire Program Files du système 64 bits, généralement 'C: \\ Program Files'. Une exception sera générée si une tentative est faite pour développer cette constante sur Windows 32 bits.
    voir aussi le fait que Inno Setup 6 à changer les noms de constantes {pf32} en {commonpf32} et {pf64} en {commonpf64}
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    salut et merci pour ta réponse,

    Je suis actuellement en Inno Setup version 5.5.9, donc je n'ai pas encore les nouveaux noms ...

    Je suis embrouillé avec toutes les constantes

    Pourrais-tu me dire si j'ai bon, j'ai beau lire la documentations j'ai des doutes

    {pf32} = C:\Program Files (x86)
    {pf64}= C:\ Program Files
    {sys} = C:\Windows\System32

    Si j'ai bien tous compris cela devrais correspondre a cela


    Cordialement
    Ayouten

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    {pf32} = C:\Program Files (x86) pour un Windows 64 bits si non et c'est là le truc avec Windows 32 bits c'est C:\Program Files
    {pf64}= C:\Program Files uniquement si windows est en 64 bits

    quand on ne sait pas {pf} est certainement le plus indiqué

    {sys} = C:\Windows\System32 attention avec cette utilisation de ne pas mettre des DLL 32 bits alors que le système serait un windows 64 bits ! dans le cas de'un windows 64 bits les dll 32 bits sont à mettre dans C:\Windows\SysWow64 (merci MS pour ce truc compliqué)

    Pour finir, une base de données ne devrait pas se trouver dans C:\Program Files mais plutôt dans C:\ProgramData\<nom de l'application> soit si je ne me trompe pas {commondata}
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    AHHHH, bas je comprend mieux pourquoi lorsque je faisait une copie de DLL 32bits, il se retrouvait dans le répertoire SysWow64


    Cependant, je ne comprend toujours pas pk lorsque je vérifie si le fichier existe, celui ci n'est pas supprimer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (FileExists('{pf32}\BDD\test21.fdb'))Then
    DeleteFile(ExpandConstant('{pf32}\BDD\test21.fdb'));

    Merci de ton aide.

    Cordialement
    Ayouten

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    {pf} (comme d'autres constantes) dépend du mode d'installation ArchitecturesInstallIn64BitMode et sera résolu soit pour du 32 bits, soit pour du 64. Par {pf32}/{pf64} on force les répertoires quelque soit l'architecture.

    Citation Envoyé par Ayouten Voir le message
    Cependant, je ne comprend toujours pas pk lorsque je vérifie si le fichier existe, celui ci n'est pas supprimer
    Et si je te dis que {pf32} n'est pas un répertoire valide, est-ce que ça fait tilt! cette fois ?

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    Ah oui en effet,cela marche mieux quand je met un répertoire valide

    Je pensais que nous pouvions utiliser des constantes mais je me suis trompée

    Merci de votre aide, cela fonctionne


    Cordialement
    Ayouten


    PS : Solution pour ceux qui sont bloqués comme moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (FileExists('{pf32}\toto\{#MyAppName}\BDD\test2.fdb')) Then 
              DeleteFile(ExpandConstant('{pf32}\toto\{#MyAppName}\BDD\test2.fdb'));
     
     
     A remplacer par : 
     
              if (FileExists('C:\Program Files (x86)\toto\{#MyAppName}\\BDD\test2.fdb'))Then
              DeleteFile(ExpandConstant('C:\Program Files (x86)\toto\{#MyAppName}\BDD\test2.fdb'));

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut Selection de fichier
    Je viens de repenser à quelque choses d'important !

    J'utilise donc un répertoire "correcte" qui me permet de faire fonctionner le Deletefile ainsi que le FileExists
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if (FileExists('C:\Program Files (x86)\POLYSOUDE\{#MyAppName}\BDD\test2.fdb'))Then
     DeleteFile(ExpandConstant('C:\Program Files (x86)\POLYSOUDE\{#MyAppName}\BDD\test2.fdb'));
    Mais, le problème est que le répertoire fonctionne si l'utilisateur ne change pas l'emplacement du fichier lors de l'installe, or si celui-ci change le répertoire du dossier d'installe, L'installe ne fonctionneras pas :/

    Donc, comment dois-je faire si l'utilisateur change de répertoire car la Constant{app} ne fonctionne pas dans ce cas :/

    Cordialement
    Ayouten

  13. #13
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    J'ai lu les autres contributions en diagonale, donc désolée si il y a redite.
    Mais pourquoi ne pas essayer avec la constante {app} ?


    Sur la documentation :
    http://www.jrsoftware.org/ishelp/index.php?topic=consts

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    C'était juste d'utiliser ExpandConstant('{pf}\...'). C'était le cas sur DeleteFile mais pas sur FileExists, d'où ma remarque
    (Et accessoirement, FileExists ne sert à rien ici !)

    Citation Envoyé par Ayouten Voir le message
    Donc, comment dois-je faire si l'utilisateur change de répertoire car la Constant{app} ne fonctionne pas dans ce cas :/
    Si on connaissait un minimum ton cahier des charges, ça aiderait ! Parce que pour l'instant, ça part dans tous les sens !

    Il n'y a pas de raison que {app} ne fonctionne pas.
    A la mise à jour, il n'est pas logique de permettre à nouveau la sélection d'un répertoire. DisableDirPage devrait être sur Auto pour masque la page le cas échéant.

  15. #15
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    Citation Envoyé par Ayouten Voir le message
    Mais, le problème est que le répertoire fonctionne si l'utilisateur ne change pas l'emplacement du fichier lors de l'installe, or si celui-ci change le répertoire du dossier d'installe, L'installe ne fonctionneras pas :/

    Donc, comment dois-je faire si l'utilisateur change de répertoire car la Constant{app} ne fonctionne pas dans ce cas :/
    Mince, je n'avais pas lu que tu avais essayé avec {app}
    Tu as le bout de code qui ne fonctionne pas ?

    Comme le dit AndNotOr, tu as certainement oublié le "ExpandConstant" pour que innosetup remplace ta constante (par exemple {app}) par la valeur de ton chemin.

    Je n'ai pas innosteup installé sur ma machine là, mais je pense que tu peux avoir un debug en pas à pas, au pire tu peux afficher tes chemins avec un showmesssage ou un msgbox. Ça te permettrait de comprendre un peu mieux.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    En effet, j’oublie le ExpandConst


    Désolé si je part dans tous les sens, je tiendrai d'expliquer précisément ce que je souhaite faire dans des prochains sujets


    Merci encore pour votre aide

    Cordialement
    Ayouten

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/01/2009, 13h15
  2. [Inno Setup] Problème avec GetFileversion()
    Par Frimouss dans le forum Outils
    Réponses: 4
    Dernier message: 11/10/2008, 18h56
  3. [Inno Setup] Problème de lancement de fichier bat avec Java
    Par oliviercotedor dans le forum Outils
    Réponses: 3
    Dernier message: 13/12/2007, 16h27
  4. [Inno-Setup] Problème sur XP : Run-time error '429'
    Par lucas67 dans le forum Installation, Déploiement et Sécurité
    Réponses: 2
    Dernier message: 27/07/2007, 08h47
  5. Inno setup, probléme
    Par nightcyborg dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 18/04/2006, 14h47

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