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 :

Lecture éronnée de valeurs dans le registre


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut Lecture éronnée de valeurs dans le registre
    Bonjour,

    Je travaille en Dev C et j'aimerais lister les valeurs des ports com dans le registre.
    voici mon 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
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <io.h>
     
    int main(int argc, char *argv[])
    {
        HKEY Retour; 
        RegOpenKeyEx(HKEY_LOCAL_MACHINE,"HARDWARE\\DEVICEMAP\\SERIALCOMM",0,KEY_READ,&Retour); 
        //définition des variables local 
        unsigned long Ty=0,NNom=25,NVal=25; 
        char etat[25],Valeur[25],NomVal[25];
        int Ret,i=0;        
        void* hSer;                // création de l'objet com 
        //parcourt la partie concernee de la base de registre 
        do { 
            //ouverture d'une clé 
            Ret=RegEnumValue(Retour,i,NomVal,&NNom,0,&Ty,Valeur,&NVal); 
            //si pas d'erreur 
            if (Ret != ERROR_NO_MORE_ITEMS) { 
                printf("%s %s\n",Valeur,NomVal); // affichage
            } 
            i++; 
        } while (Ret != ERROR_NO_MORE_ITEMS); 
        //fermeture de la base de registre 
        RegCloseKey(Retour); 
    }
    On peut difficilement faire plus simple !

    Ca marche bizzarement:
    Ca liste bien mes deux ports physique mais pas mon virtuel (Périphérique usb qui simule port COM).
    En fait j'ai ça:

    COM1 \Device\Serial0
    COM2 \Device\Serial (à la place de \Device\Serial1 mais c'est pas grave)
    COM2 \Device\Serial (une deuxième fois)

    Au lieu de:

    COM1 \Device\Serial0
    COM2 \Device\Serial
    COM5 \Device\slabser0 (Qui est bien présent comme ça dans la base)

    Ou me suis-je trompé ?


    David, à VERSAILLES

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Poste dans le forum Développement Windows, c'est pas un problème C.
    Cependant, je ne suis pas d'accord avec la boucle, le retour de RegEnumValue est ERROR_SUCCESS en cas de succès, donc c'est ce que tu dois tester à mon avis.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Salut Trap D,

    Milles excuses pour le dérangement mais vu que c'est du C, j'ai pensé...

    En fait, j'ai trouvé la réponse, la fonction change les valeurs de NNom et de NVal, il faut donc remettre NNom=25;NVal=25; avant chaque appel de RegEnumValue.


    Salutations.

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Ben oui ,au fait, les valeurs sont changées par la fonction !
    Un petit clic sur [Résolu] en bas à gauche ??
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Oups, excuses, ce n'est pas dans mes habitudes.


    Il faut dire que c'est rarement moi qui répond à mes question !

    +

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Ben tu progresses, bravo
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

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

Discussions similaires

  1. Recherche et remplace valeur dans le registre
    Par krfa1 dans le forum VBScript
    Réponses: 1
    Dernier message: 17/09/2009, 17h35
  2. lecture d'une valeur dans un tableau
    Par canary dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 03/01/2008, 17h36
  3. Lire et créer une valeur dans le registre
    Par bilal_inf dans le forum Langage
    Réponses: 3
    Dernier message: 11/05/2007, 18h11
  4. problème d'entré de valeur dans le registre
    Par fabandskate dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/04/2007, 23h37
  5. Lire une valeur dans le registre
    Par John.s dans le forum C
    Réponses: 2
    Dernier message: 26/11/2003, 19h55

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