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 :

Lister les ports série disponibles


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut Lister les ports série disponibles
    Salut,

    je cherche à récupérer la liste des port série qui sont disponible,
    est-ce qu'il y a un moyen simple qui fournie directement cette liste comme sous VB avec My.Computer.Ports.SerialPortNames?

    J'ai trouvé des exemples ou il faut aller chercher l'info dans les clés registre mais c'est pour C++builder mais je travaille sous Visual C++.

    Est-ce que quelqu'un a déjà fait ça?

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Va voir sur cette page, par exemple. Il existe d'autres méthodes d'énumération, mais c'est plus pour trouver les ports série "planqués" ou non standards.

    L'utilisation des clés de registre sous Visual C++ ne diffère pas beaucoup de C++ Builder : dans les deux cas, en général, tu tapes directement dans l'API Win32.

    Sinon, va sur MSDN voir l'aide de RegOpenKey et les exemples qui vont avec.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    Ok merci je vais essayer de reprendre l'exemple sous builder et de le modifier en fonction de se que dit msdn

    PS: ton 2e lien est le même que le premier

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par vtk37 Voir le message
    PS: ton 2e lien est le même que le premier
    Corrigé, merci.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    Salut,

    voila le code sous builder dont je voudrai reproduire le fonctionnement

    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
     
    void __fastcall TCPortChoiceFrm::FormCreate(TObject *Sender)
    {       // Prend liste des ports disponibles dans le Registre
        TRegistry * reg = new TRegistry();
        reg->RootKey = HKEY_LOCAL_MACHINE;
        bool res = reg->OpenKey("Hardware\\DeviceMap\\SerialComm",false);
        if(res) reg->GetValueNames(CBoxPort->Items); // Liste des ports
        if(CBoxPort->Items->Count)
        {      // Si nom des clés != COMx, lit valeurs
            if(CBoxPort->Items->Strings[0].SubString(1,3) != "COM")
                for(int i=0; i<CBoxPort->Items->Count; i++)
                    CBoxPort->Items->Strings[i] = reg->ReadString(CBoxPort->Items->Strings[i]);
        }
        delete reg;
                         // Affiche le port sélectionné :
        CBoxPort->ItemIndex = CBoxPort->Items->IndexOf(*PortName);
    }
    J'ai un peu commencé à bricoler un peu mais je tourne en rond je sais pas quoi mettre dans mon "if", il faudrait une fonction qui lit toute les clés se trouvant dans le répertoir Hardware\DeviceMap\SerialComm du regedit et mettre les données de chaque clés ensuite dans mon comboBox.
    Mais le soucis c'est que je ne sais pas comment recupérer la donné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    LONG Res=RegOpenKey(HKEY_LOCAL_MACHINE,"Hardware\\DeviceMap\\SerialComm",PHKEY phkResult);
    if (Res)
    {
     
    }
    RegCloseKey(HKEY_LOCAL_MACHINE);

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Regarde donc les Registry Functions... Notamment "RegQuery*" et "RegEnum*".

    Et surtout, ouvre ta propre base de registre et regarde ce qu'il y a dedans, à cette clé !! C'est de la programmation, pas du chamanisme, il n'y a rien à "deviner" !

    Démarrer -> Exécuter -> Regedit : la base non négociable quand on commence à tripoter la base de registre.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. [C] Lister les ports Série
    Par Shaina dans le forum C
    Réponses: 3
    Dernier message: 22/04/2010, 16h59
  2. Lister les ports Série disponible
    Par Mattetfamilly dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/01/2008, 17h07
  3. Réponses: 5
    Dernier message: 18/02/2005, 16h36
  4. Lister les ports disponibles
    Par belfaigore dans le forum C++Builder
    Réponses: 17
    Dernier message: 07/02/2005, 16h58
  5. Lister les ports com disponible
    Par dyason dans le forum Général Python
    Réponses: 1
    Dernier message: 16/08/2004, 10h35

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