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

Langage Java Discussion :

Comment acceder aux "FriendlyName" dans la base de registre de Windows


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Comment acceder aux "FriendlyName" dans la base de registre de Windows
    Bonjour

    Je developpe une interface graphique sous java (Netbeans) permettant de piloter un display.
    Pour cela j'ai créé un port de COM virtuel qui emule un port serie.

    Afin d'eviter a l'utilisateur de devoir configurer le port de COM a chaque utilisation du soft, j'aimerais pouvoir faire ça de façon automatique.

    Pour l'instant j'utilise ce 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
     
     
     
     
    public void listePortsDispo()
    {    
         Win32Driver w32Driver= new Win32Driver();
         w32Driver.initialize();
     
     
    Enumeration portList=CommPortIdentifier.getPortIdentifiers();
    CommPortIdentifier portId;
     
    if (portList==null)
    {
    System.err.println("No COM port detected");
    javax.swing.JOptionPane.showMessageDialog(null,"No COM port detected");
    return;
    }
     
    while (portList.hasMoreElements()){
     
    	portId=(CommPortIdentifier)portList.nextElement();
    	System.out.println("* "+portId.getName());
    } // while
     
     
     
    }
    ce qui me retourne :

    * COM1
    * COM5
    * COM6
    * COM7

    mais malheureusement ca ne me donne pas d'indication precise quand au port que je veux utiliser.
    J'aimerais que mon code me retourne quelque chose comme le Device manager de Windows c'est a dire:

    * COM1: = Communications Port (COM1)
    * COM5: = NI Serial Port (Com5)
    * COM6: = NI Serial Port (Com6)
    * COM7: = USB Serial Port (COM7)

    En fait j'aimerais pouvoir récuperer le nom detaillé du port COM,ainsi je peux cibler ou se trouve mon port de COM virtuel. Cela permet une meilleure portabilité.


    Je souhaiterais pouvoir acceder aux "FriendlyName" dans la base de registre puisque c'est la qu'est dispo l'information.
    Existe t-il une classe pour pouvoir acceder a ce genre d'info.


    Merci d'avance

  2. #2
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Salut,

    une source pour lire depuis le registre :

    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
        * import java.io.IOException;
        * import java.io.InputStream;
        * import java.io.StringWriter;
        *
        * public class RegPathAdobe {
        *
        * private static final String REGQUERY_UTIL = "reg query ";
        *
        * private static final String REGSTR_TOKEN = "REG_SZ";
        *
        * // quand on connait la valeur de la clé
        * // private static final String ADOBE_NAME_CMD = REGQUERY_UTIL +
        * // "\"HKLM\\Software\\Adobe\\Acrobat Reader\\7.0\\Installer\" /v Path";
        *
        * // dans le cas contraire
        * private static final String ADOBE_NAME_CMD = REGQUERY_UTIL
        * + "\"HKLM\\Software\\Adobe\\Acrobat Reader\\7.0\\InstallPath\"";
        *
        * public static String getAdobePath() {
        * try {
        * Process process = Runtime.getRuntime().exec(ADOBE_NAME_CMD);
        * StreamReader reader = new StreamReader(process.getInputStream());
        *
        * reader.start();
        * process.waitFor();
        * reader.join();
        *
        * String result = reader.getResult();
        *
        * int p = result.indexOf(REGSTR_TOKEN);
        *
        * if (p == -1) {
        * return null;
        * }
        *
        * return result.substring(p + REGSTR_TOKEN.length()).trim();
        * } catch (Exception e) {
        * return null;
        * }
        * }
        *
        * //parser du résultat
        * static class StreamReader extends Thread {
        * private InputStream is;
        *
        * private StringWriter sw;
        *
        * StreamReader(InputStream is) {
        * this.is = is;
        * sw = new StringWriter();
        * }
        *
        * public void run() {
        * try {
        * int c;
        * while ((c = is.read()) != -1)
        * sw.write(c);
        * } catch (IOException e) {
        * ;
        * }
        * }
        *
        * String getResult() {
        * return sw.toString();
        * }
        * }
        *
        * public static void main(String s[]) {
        * System.out.println(getAdobePath());
        * }
        *
        * }

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Ouha super pour ton lien c'est exactement ce que je cherche depuis 3 jours

    Merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 118
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    >> En fait j'aimerais pouvoir récuperer le nom detaillé du port COM,ainsi je peux cibler ou se trouve mon port de COM virtuel. Cela permet une meilleure portabilité.
    >> Je souhaiterais pouvoir acceder aux "FriendlyName" dans la base de registre puisque c'est la qu'est dispo l'information.

    Je cherche à faire exactement la même chose que toi.
    As-tu réussi à récupérer les informations sur le port COM visible depuis le gestionnaire de périphériques ?
    Dans quelle clef de la base de registres faut-il chercher ?

    Merci beaucoup,
    F.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/03/2008, 13h18
  2. Comment acceder aux calendriers créés dans outlook 2003
    Par spynux dans le forum Exchange Server
    Réponses: 2
    Dernier message: 20/08/2007, 23h08
  3. Réponses: 4
    Dernier message: 23/08/2006, 15h31

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