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 C++ Discussion :

[win32] RegQueryValueExW sur REG_BINARY


Sujet :

Langage C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut [win32] RegQueryValueExW sur REG_BINARY
    Bien le bonjour ami du win32

    je veux lire une REG_BINARY

    ci dessous j'ai mon code de crasseux.. cela fonctionne mais je sens la crasse sur mes yeux quand je relis..

    j'utilise un BYTE lpData[1000];
    si je met BYTE lpData[50]; ca me retourne error 234 (ERROR_MORE_DATA) ce qui est normal..
    le dwSize me renseigne a la taille exact : 592
    donc si je fais BYTE lpData[592]; cela fonctionne mais bon ..

    j'essaye depuis plusieurs heures mais je n'arrive pas a faire en sorte que la taille de lpData soit redimensionné automatiquement..
    j'ai essayé avec HeapAlloc ca mais ca veut pas !!
    lpData=(BYTE*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSize);

    si quelqu'un pouvait me sauver ? :p je suis a 2 doigh de boire du destop

    question bonus : est il possible de faire carrement un truc propre du genre un RegQueryValueEx qui va cherche le type de key(DWORD, BINARY etc) et qui alloue lpData en fonction de ce type ? avec ca je me sentirai tres propre

    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
     
    #include <tchar.h>
    #include <Windows.h>
    #include <stdio.h>
     
    int main()
    {
        HKEY hKey = HKEY_USERS;
        wchar_t * lpSubKey = L"S-1-5-21-1421355107-4124689249-2030404034-1473129\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\CIDSizeMRU";
     
        HKEY phkResult;
        DWORD dwType;
        DWORD dwSize;
        BYTE lpData[1000];
        wchar_t * lpValueName = L"29";
        dwSize = sizeof(lpData);
     
        long lResult = RegOpenKeyExW(hKey, lpSubKey, 0, KEY_READ, &phkResult);
        wprintf(L"Trying to open the REG_BINARY : \"%ls\" in %ls\n\n",lpValueName, lpSubKey);
        if (lResult == 0)
        {
            wprintf(L"[OK] code Error : %ld \n",lResult);
            lResult = RegQueryValueExW(phkResult, lpValueName, NULL,&dwType, (LPBYTE)&lpData,&dwSize);
            if(lResult == 0)
            {
                wprintf(L"[OK] DWORD Value : %ls \n",lpData);
                wprintf(L"[OK] Value Size : %ld \n",dwSize);
            }
            else
                wprintf(L"[KO] code Error : %ld \n",lResult);
        }
        else
        {
            wprintf(L"[KO] code Error : %ld \n",lResult);
        }
        RegCloseKey(hKey);
        return 0;
    }
    je me suis planté de forum semble t il .. quelqu'un peut le déplacer dans le bon forum svp ?
    merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    HeapAlloc(), ou même un simple malloc(), devrait marcher.

    Par contre, pour obtenir la taille, je passerais plutôt un buffer NULL qu'un buffer trop petit.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut
    jai trouvé une solution ce matin

    Merci

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Laquelle, s'il te plait?
    Nous sommes un forum d'entraide, quand quelqu'un cherchera une solution au même problème, ça lui fera une belle jambe de savoir que tu as trouvé une solution
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut
    j'ai trouvé la solution a mon problème mais pas un code 100% fonctionnelle..
    je n'ai pas posté pour cette raison .. je vais reposter mon problème sur "débuter" avec un code plus complet

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Une indication suffirait.
    Personnellement, je connais très peu la win32, et je reste sur ma faim.

    Au plaisir de t'aider
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

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

Discussions similaires

  1. [Win32] Pointeur sur fonctions et méthodes de classe
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 13/09/2007, 19h07
  2. [win32] precision sur les hwnd enfants
    Par NiamorH dans le forum Windows
    Réponses: 1
    Dernier message: 05/06/2007, 14h33
  3. [PHP5 APACH2 WIN32]Erreurs sur "session_start();"
    Par Jean_Benoit dans le forum Langage
    Réponses: 3
    Dernier message: 17/02/2006, 14h36
  4. [MySQL 5.1.4 alpha win32]Doc sur l'install?
    Par Jean_Benoit dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/01/2006, 17h18

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