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

avec Java Discussion :

Comment extraire une valeur du registre pour l'utiliser dans une méthode? [Débutant(e)]


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut Comment extraire une valeur du registre pour l'utiliser dans une méthode?
    Bonjour,

    J'ai fais un petit outil bien sympathique, mais hélas la fonction Windows Update n'est pas/plus fonctionnelle sur Win10.
    Les coquins de chez Microsoft ont supprimé toutes les valeurs registre et dll se rapportant soit à wuapp soit à la valeur shell correspondante.

    Pour ce faire j'ai besoin d'extraire une valeur du registre pour classifier les versions de Windows, puis ensuite exploiter ce ''nombre" qui est en fait un String (aide).

    Cela c'est pour ma 1ére méthode.

    Comme je suis un tordu par nature mais aussi très curieux, pour que ma solution fonctionne dans le + de cas possible, je vais devoir adapter une autre partie du code sur la langue de l'Os.
    Par exemple:

    Anglais US => us-US
    Canada CA => ca-CA
    Français FR => fr-FR

    N'ayant que très peu de connaissance en Java, vous comprenez bien que je suis très vite limité.
    Cependant, j'ai bien compris cette partie de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
    try {
                Process p = new ProcessBuilder(
                        "reg",
                        "query",
                        "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\"",
                        "/v", "proxyserver").start();
    Qui met en avant l'extraction de la valeur proxyserver. Donc l'adaptation à mon cas revient à produire

    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
       public class registre{
     
     
          static String Version(String inputLine){
     
     
     
                    try {
                      Process p = new ProcessBuilder(
                          "reg",
                          "query",
                          "\"HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\"",
                          "/v", "currentversion").start();
     
                  BufferedReader in = new BufferedReader(new InputStreamReader(p
                          .getInputStream()));
     
     
                  while ((inputLine = in.readLine()) != null) {
                     System.out.println(inputLine);
     
                  }
     
                    }  // fin de try
     
                    catch (Exception e)
                    {}
            return inputLine;               
     
        }      // fin de Version
    Le but étant sous 8.1 de récupérer "6.3" est sous win10 "10.0".
    Sachant que 6.3 et 10.0 sont des String il faudra ensuite les convertir en int afin de pouvoir faciliter l'utilisation de if pour procéder ainsi.

    Ici j'ai gardé le mode String car je ne sais pas si c'est bon de faire cette conversion String vers int
    L'avantage du int permettrait de faire un if >= 10 ainsi, toutes les versions supérieures seraient englobées (sauf si chez Microsoft ils changent encore la numérotation)
    Donc en fonction de la valeur de inputLine, j'aurais plusieurs if.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
           if (inputLine.equals("6.3") ){
                    Runtime runtime = Runtime.getRuntime();
                  try {
     
                    runtime.exec(new String[] { "C:\\Windows\\explorer.exe", "shell:::{36eef7db-88ad-4e81-ad49-0e313f0c35f8}" } );
                  }
                  catch (Exception e)
                  {}
                }
    Mon Main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      public static void main(String args[]) {
     
     
     
                   Terminal.ecrireStringln("La version de windows est: " + Version(inputLine));
    }
    La question générale est:
    Comment récupérer dans une fonction la version de windows et la langue?

    Merci de m'avoir lu.

    Labougie

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par labougie Voir le message
    La question générale est:
    Comment récupérer dans une fonction la version de windows et la langue?
    Tu peux récupérer le nom et la version du système d'exploitation tout simplement avec la propriété sytème os.name :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    System.out.println("Système : " +System.getProperty("os.name")); 
     
    		String osname = System.getProperty("os.name");
    		if ( osname.startsWith("Windows ")) {
    			String version = osname.split(" ")[1];
    			System.out.println("Version de Windows : " + version);
    		}
    		else {
    			System.out.println("Pas Windows");
    		}

    Et la langue par la classe Locale :

    • Locale.getDefault() pour avoir la localisation courante
    • Locale.getAvailableLocales() pour avoir les localisations installées

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Bonjour Joel,

    Content de te lire de nouveaux.

    J'ai procéder à divers tests

    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
      import java.lang.*;
    import java.util.*;
     
    public class SystemDemo {
     
       public static void main(String[] args) {
     
     
      System.out.println("Système : " +System.getProperty("os.name")); 
      System.out.println("Système version : " +System.getProperty("os.version"));
      System.out.println("Système langue par défaut : " + Locale.getDefault());
     
     Locale  locale = Locale.getDefault();
     
     System.out.println("Système langue par défaut que je teste moi même : " +locale);
     
     String version = System.getProperty("os.version");
      System.out.println("Système version : " + version);
     
      double retval  = Double.parseDouble(version);
      double test = retval+retval;
      System.out.println("Somme versions : " + test);
     
      // création d'un arraylist
      Locale[] languesinstallees = Locale.getAvailableLocales();
      System.out.println("Système toutes les langues installées: " ); 
     
      for (int i = 0; i < languesinstallees.length; i++) {
       System.out.println(i + ":" + languesinstallees[i]);
       }
     
     
     
      }
    }
    Ici dans mon exemple, j'ai pu récupérer la version est la changer de String en Double, cela fait bien mon affaire.
    Cependant, la variable "locale" ne semble pas être un String, ou alors je m'y prends très mal pour la réutiliser dans mon code.
    Voici ou je souhaite la réimplanter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       try {
                              runtime.exec(new String[] { "C:\\Windows\\explorer.exe", " %localappdata%\\Packages\\windows.immersivecontrolpanel_cw5n1h2txyewy\\LocalState\\Indexed\\Settings\\",locale,"\\AAA_SystemSettings_MusUpdate_UpdateActionButton.settingcontent-ms" } );
                            }
    J'ai pourtant bien échappé le Path, posé des virgules mais Eclipse me sort une erreur de type

    Nom : joel.PNG
Affichages : 350
Taille : 6,8 Ko

    Comment solutionner ce différent?

    Labougie

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    La classe Locale n'est évidemment pas du String. Mais tu peux la convertir en String, comme n'importe quelle autre, par toString(). Le format est le language en ISO639-1 suivi du pays le cas échéant en ISO3166 (avec _ comme séparateur), mais on peut avoir trois parties aussi (avec un variant). La méthode getLanguageTag() retourne une String au format IETF BCP 47.
    Tu peux extraire la langue et le pays et reconstituer ton propre code : locale.getCountry()+"-"+locale.getLanguage() par exemple. Regarde la doc de la classe Locale pour en savoir plus (par exemple, si tu as besoin d'ISO639-2).


    Ensuite, pour la version, je te déconseille de la convertir en double. Déjà, tu n'est pas sûr que la forme sera bien du type x.y (si c'est 10.1.2 par exemple, patatras). En plus, rien ne garanti que la précision du double ne sera pas génante pour certaines valeurs.

    Un parsing de ce type serait préférable (version simplifiée, parce qu'on pourrait aussi avoir des numéros de versions du type 1.2.3b#209988777 par 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
    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
    public class Version implements Comparable<Version> {
     
    	private final String version;
    	private final int major;
    	private final int minor;
    	private final int build;
     
    	public Version(String version) {
    		this.version = version;
    		String[] parts=version.split("\\.");
    		major = Integer.parseInt(parts[0]);
    		if ( parts.length>1 ) {
    			minor = Integer.parseInt(parts[1]);
    			if ( parts.length>2 ) {
    				build = Integer.parseInt(parts[2]);
    			}
    			else {
    				build = 0;
    			}
    		}
    		else {
    			minor = 0;
    			build = 0;
    		}
    	}
     
    	public int getMajor() {
    		return major;
    	}
     
    	public int getMinor() {
    		return minor;
    	}
     
    	public int getBuild() {
    		return build;
    	}
     
    	@Override
    	public int hashCode() {
    		return Objects.hash(major, minor, build);
    	}
     
    	@Override
    	public boolean equals(Object obj) {
    		if ( obj instanceof Version ) {
    			return compareTo((Version)obj)==0;
    		}
    		return false;
    	}
     
    	@Override
    	public int compareTo(Version o) {
    		final int major = getMajor()-o.getMajor();
    		if ( major==0 ) {
    			final int minor = getMinor()-o.getMinor();
    			if ( minor==0 ) {
    				final int build = getBuild()-o.getBuild();
    				return build;
    			}
    			else {
    				return minor;
    			}
    		}
    		else {
    			return major;
    		}
    	}
     
    	@Override
    	public String toString() {
    		return version;
    	}
     
    }
    A adapter en plus à la problématique des versions de windows : Windows 95 est plus ancien que Windows 10, or 10<95 ! Et puis il y a Windows XP et Windows ME qui ont des valeurs spéciales.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Bonjour Joel,

    Je rencontre une erreur qui est soit une erreur Microsoft soit une erreur java (comme j'ai pu en lire sur les précédentes versions).

    La méthode System.getProperty("os.name") retourne windows 8.1 sous windows 10. Pas simple, pas simple du tout.

    Nom : K26iubJ.png
Affichages : 460
Taille : 5,8 Ko

    Alors j'ai chiné sur la toile pour extraire proprement la valeur "Product Name" du registre pour pouvoir la traiter par la suite.

    Ma condition fonctionne correctement, et la distinction entre les différents Os se fait normalement. Cependant, je rencontre une difficulté sur comment faire sortir le Gui de "Windows Update" sur windows10.
    Aucune commandes/instructions microsoft ne fonctionne. Ils ont retiré la dll, le wuapp et la valeur du shell correspondant.

    Cette ligne donnée plus haut permet de créer un raccourci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    %windir%explorer.exe %localappdata%\Packages\windows.immersivecontrolpanel_cw5n1h2txyewy\LocalState\Indexed\Settings\" +locale+"\AAA_SystemSettings_MusUpdate_UpdateActionButton.settingcontent-ms
    Ou locale prend les informations de get.locale()

    Je l'ai travaillé au corps, mais rien ne passe.

    Si tu as une piste, je suis preneur évidemment.

    Labougie

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par labougie Voir le message
    Bonjour Joel,

    Je rencontre une erreur qui est soit une erreur Microsoft soit une erreur java (comme j'ai pu en lire sur les précédentes versions).

    La méthode System.getProperty("os.name") retourne windows 8.1 sous windows 10. Pas simple, pas simple du tout.

    Nom : K26iubJ.png
Affichages : 460
Taille : 5,8 Ko

    Alors j'ai chiné sur la toile pour extraire proprement la valeur "Product Name" du registre pour pouvoir la traiter par la suite.
    Il faudra forcément prendre une version super récente du JDK, pour avoir Windows 10 référencé dedans.

    Sinon, accessoirement, tu peux aussi accèder à la registry directement avec jna, sans exécuter un programme externe. Tiens, je te file même le helper que j'avais écrit pour ça :

    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
    import com.sun.jna.platform.win32.Advapi32Util;
    import com.sun.jna.platform.win32.WinReg;
     
    import fr.wedia.util.java.util.Tools;
     
    public class WinRegistry {
     
    	public enum HKEY {
    		HKEY_LOCAL_MACHINE(WinReg.HKEY_LOCAL_MACHINE),
    		HKEY_CLASSES_ROOT(WinReg.HKEY_CLASSES_ROOT),
    		HKEY_CURRENT_USER(WinReg.HKEY_CURRENT_USER),
    		HKEY_CURRENT_CONFIG(WinReg.HKEY_CURRENT_CONFIG),
    		HKEY_DYN_DATA(WinReg.HKEY_DYN_DATA),
    		HKEY_PERFORMANCE_DATA(WinReg.HKEY_PERFORMANCE_DATA),
    		HKEY_PERFORMANCE_NLSTEXT(WinReg.HKEY_PERFORMANCE_NLSTEXT),
    		HKEY_PERFORMANCE_TEXT(WinReg.HKEY_PERFORMANCE_TEXT),
    		HKEY_USERS(WinReg.HKEY_USERS);		
     
    		private WinReg.HKEY hkey;
     
    		private HKEY(WinReg.HKEY hkey) {
    			this.hkey=hkey;
    		}
     
    		public WinReg.HKEY getHkey() {
    			return hkey;
    		}
     
    	}
     
    	public static boolean isExistsValue(WinRegistry.HKEY hkey, String key, String valueName, String value, boolean ignoreCase) {
    		if ( isExists(hkey, key, valueName) ) {
    			if ( ignoreCase ) {
    				return ( Tools.equalsIgnoreCase(value, read(hkey, key, valueName)) );
    			}
    			else {
    				return ( Tools.equals(value, read(hkey, key, valueName)) );
    			}
    		}
    		return false;
    	}
     
    	public static String read(WinRegistry.HKEY hkey, String key, String valueName) {
    		return Advapi32Util.registryGetStringValue(hkey.getHkey(), key, valueName);
    	}
     
    	public static boolean isExists(WinRegistry.HKEY hkey, String key) {
    		return Advapi32Util.registryKeyExists(hkey.getHkey(), key);
    	}
     
    	public static boolean isExists(WinRegistry.HKEY hkey, String key, String value) {
    		return Advapi32Util.registryValueExists(hkey.getHkey(), key, value);
    	}
     
     
    	public static void setValue(WinRegistry.HKEY hkey, String key, String valueName, String value) {
    		Advapi32Util.registrySetStringValue(hkey.getHkey(), key, valueName, value);
    	}
     
    	public static void setValueIfNotExists(HKEY hkey,
    			String key, String valueName, String value, boolean ignoreCase) {
    		if ( !isExistsValue(hkey, key, valueName, value, ignoreCase) ) {
    			setValue(hkey, key, valueName, value);
    		}
    	}
     
    }

    Citation Envoyé par labougie Voir le message
    Ma condition fonctionne correctement, et la distinction entre les différents Os se fait normalement. Cependant, je rencontre une difficulté sur comment faire sortir le Gui de "Windows Update" sur windows10.
    Que veux-tu dire par "sortir le Gui" ?

    Citation Envoyé par labougie Voir le message
    Aucune commandes/instructions microsoft ne fonctionne. Ils ont retiré la dll, le wuapp et la valeur du shell correspondant.
    A mon avis, c'est plutôt sur le forum Windows que tu trouveras des réponses à ce type de question.

    Citation Envoyé par labougie Voir le message
    Cette ligne donnée plus haut permet de créer un raccourci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    %windir%explorer.exe %localappdata%\Packages\windows.immersivecontrolpanel_cw5n1h2txyewy\LocalState\Indexed\Settings\" +locale+"\AAA_SystemSettings_MusUpdate_UpdateActionButton.settingcontent-ms
    Ou locale prend les informations de get.locale()

    Je l'ai travaillé au corps, mais rien ne passe.

    Si tu as une piste, je suis preneur évidemment.
    Ça m'a l'air bien compliqué pour créer un raccourci (là, aussi il doit y avoir quelque chose dans jna — avant jna, il y avait jshortcut). Mais c'est quoi la question ? Et pourquoi créer un shortcut depuis Java ? Ce n'est pas plutôt un lien symbolique que tu veux créer ?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Joel,

    Quand je parle de Gui pour windows update, je pense à faire afficher la fenêtre de windows update.
    Exactement comme le fait la commande windows "wuapp" depuis la fenêtre exécuter.

    Tiens ceci a été trouvé dans mes lectures
    Sinon, accessoirement, tu peux aussi accèder à la registry directement avec jna, sans exécuter un programme externe. Tiens, je te file même le helper que j'avais écrit pour ça :
    Mais je n'ai pas su/pu l'exploiter car il faut charger les

    import com.sun.jna.platform.win32.Advapi32Util;
    import com.sun.jna.platform.win32.WinReg;
    import fr.wedia.util.java.util.Tools;




    Je n'étais pas certain d'avoir les bonnes sources de chargement, je vais y regarder + attentivement.

    Après avoir importé les "jna", le fait d'écrire import com.sun.jna etc... en entête du programme suffit il, ou alors faut il en plus les mettre dans un dossier particulier afin de les emporter avec la compilation?

    Pour le jdk, il faut alors que je fasse une mise à jour,,, je procèderai dans quelques jours, car pas certain qu'elle soit déjà produite, .

    labougie


  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Il faut bien sûr télécharger jna.jar puis le mettre dans ton projet, et dans l'IDE, l'ajouter au classpath (aussi appelé build path) (je ne sais plus si tu es sous Eclipse, NetBeans ou autre).

Discussions similaires

  1. [XL-2007] USF récupérer dans une valeur en fonction d'un choix dans une liste (Combobox)
    Par mouftie dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/07/2015, 16h48
  2. Réponses: 5
    Dernier message: 13/06/2014, 15h14
  3. [MySQL] recuperer une valeur dans une liste deroulante pour l'utiliser dans une seconde liste
    Par tortue_22 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 12/05/2010, 12h50
  4. [Débutant] Utilisation d'une valeur de la zone de texte dans une requête
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 13/07/2006, 11h42
  5. valeur d'un champ pour l'utiliser dans une requete
    Par bachilbouzouk dans le forum ASP
    Réponses: 4
    Dernier message: 08/04/2005, 17h58

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