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

C# Discussion :

Obtenir le Nom d'un périphérique Bluetooth, à partir du port COM qu'il utilise


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Obtenir le Nom d'un périphérique Bluetooth, à partir du port COM qu'il utilise
    Bonjour,

    Je fais un programme, une sorte de moniteur Série... Bref il y aura un contrôle Dropdown qui servira à choisir le périphérique auquel se connecter. Pour l'instant j'obtiens les noms des Ports Série disponibles, tels qu'on peut les voir dans le Gestionnaire de périphériques, avec cette méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach (var p in new ManagementObjectSearcher("root\\CIMV2", "SELECT Caption FROM Win32_PnPEntity WHERE ConfigManagerErrorCode = 0 AND Caption LIKE '%(COM%[0-9]%)%'").Get())
    {
        Console.WriteLine(p["Caption"]);
    }
    Ce que j'aimerais faire c'est remplacer les "Lien série sur Bluetooth standard", par les Noms des périphérique tels qu'on peut les voir dans la fenêtre Paramètres Bluetooth.




    Comment faire? Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Points : 372
    Points
    372
    Par défaut
    Regardes ici tu auras toutes les possibilités de cette API:

    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    Sinon regardes du côté de
    Description
    Vous avez la réponse à votre question ? Mettez votre sujet en

    Une personne vous a correctement aidé ? Cliquez sur le

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oui j'ai oublié de dire que j'ai testé cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach (var o in new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity WHERE ConfigManagerErrorCode = 0 AND Caption LIKE '%(COM%[0-9]%)%'").Get())
    {
        foreach (var p in o.Properties)
        {
            Console.WriteLine(p.Name + " " + p.Value);
        }
        Console.WriteLine();
    }
    Ca affiche donc toutes les propriétés, mais pas de trace du Nom "ArduinoBT" ou "W910i"...

    Par exemple, pour le port COM5:
    Availability
    Caption Lien série sur Bluetooth standard (COM5)
    ClassGuid {4d36e978-e325-11ce-bfc1-08002be10318}
    CompatibleID System.String[]
    ConfigManagerErrorCode 0
    ConfigManagerUserConfig False
    CreationClassName Win32_PnPEntity
    Description Lien série sur Bluetooth standard
    DeviceID BTHENUM\{00001101-0000-1000-8000-00805F9B34FB}_LOCALMFG&0000\8&6AB30FE&0&000000000000_0000000E
    ErrorCleared
    ErrorDescription
    HardwareID System.String[]
    InstallDate
    LastErrorCode
    Manufacturer Microsoft
    Name Lien série sur Bluetooth standard (COM5)
    PNPDeviceID BTHENUM\{00001101-0000-1000-8000-00805F9B34FB}_LOCALMFG&0000\8&6AB30FE&0&000000000000_0000000E
    PowerManagementCapabilities
    PowerManagementSupported
    Service BTHMODEM
    Status OK
    StatusInfo
    SystemCreationClassName Win32_ComputerSystem
    SystemName PC1
    Je pense qu'il est possible de faire quelque chose avec les propriétés "ClassGuid", "DeviceID" ou "PNPDeviceID"...

    Dans le Registre je trouve le Nom "ArduinoBT" à plusieurs endroits:

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\BTHPORT\Parameters\LocalServices\{00001101-0000-1000-8000-00805f9b34fb}\0
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\BTHPORT\Parameters\LocalServices\{00001101-0000-1000-8000-00805f9b34fb}\2

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\BTHPORT\Parameters\LocalServices\{00001101-0000-1000-8000-00805f9b34fb}\0
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\BTHPORT\Parameters\LocalServices\{00001101-0000-1000-8000-00805f9b34fb}\2

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\LocalServices\{00001101-0000-1000-8000-00805f9b34fb}\0
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\LocalServices\{00001101-0000-1000-8000-00805f9b34fb}\2

    Toutes ces clés contiennent une propriété "ServiceName" (qui est le Nom qui m'intéresse), ainsi qu'une propriété "Enabled", qui est à "1" dans les clés 0, et à "0" dans les clés 2


    Alors bien sûr on remarque que les noms des clés du Registre contiennent une partie du DeviceID (ou PNPDeviceID), donc dans mon code je pourrais chercher dans le registre s'il existe par exemple la clé HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\LocalServices\<Première partie du DeviceID>\0 avec la propriété "Enabled" avec une valeur "1" et donc il ne me resterais plus qu'a y prendre la valeur de la propriété "ServiceName"...

    Mais n'y a-t-il pas plus simple? Je redoute aussi qu'en utilisant la méthode que j'ai décrite, ca ne fonctionne pas sur tous les PC Windows...

Discussions similaires

  1. Obtenir le nom complet d'une variable à partir de pageContext
    Par elmessoussi dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 25/03/2008, 18h04
  2. Réponses: 4
    Dernier message: 30/10/2007, 21h03
  3. Réponses: 5
    Dernier message: 27/04/2007, 14h43
  4. Obtenir le nom d'un fichier a partir d'un FILE
    Par Syrmonsieur dans le forum C
    Réponses: 9
    Dernier message: 08/06/2006, 14h59
  5. Obtenir le nom d'un proces a partir de son PID
    Par Visiteur_33 dans le forum Windows
    Réponses: 6
    Dernier message: 16/02/2006, 11h03

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