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

Windows Discussion :

Manipulation de la base de registe


Sujet :

Windows

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

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Manipulation de la base de registe
    Mon pb est pour ecrire des clefs ds la base de registe. Il s'agit de plusieurs types different il uy en a en tout 26. J'ai donc utilise un tableau de valeu avec le nom de la clef, son types et sa valeur. Apres avoir ouvert la BDR au bonne endroit j'utilise RegSetvalueEx, et bien entendu je rencontre des pb.
    Apres avoir un peux galerer et fait des test ds tous les sens le pb semble venir du type de parametre que je passe.
    Voila la partie interessant du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    char *reg[3][3] ={{"1","2","3"},{"REG_DWORD","REG_SZ","REG_BINARY"},{'"','None"',""}}//Imaginez que mon tableau a moi fait *reg[3][26]
    //Ecriture dans le registre
            //Création de la clef
            if(RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\RealVNC\\WinVNC4\\", NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL) != ERROR_SUCCESS)
            for&#40;i = 0; i <26; i++&#41;
            &#123;
                    RegSetValueEx&#40;hKey, reg&#91;1&#93;&#91;i&#93;, NULL, reg&#91;2&#93;&#91;i&#93;, reg&#91;3&#93;&#91;i&#93;, sizeof&#40;reg&#91;3&#93;&#91;i&#93;&#41;&#41;; //la c'est mon code telqu'il est actuellement la compilation reussi ais les clef ne sont pas cree
    &#125;
    Je pense qu'il faut que je convertisse certaine variable avt mais je comprend pas tout.
    Merci de votre aide.

  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
    Points : 6 498
    Points
    6 498
    Par défaut
    A mon avis il faut d'abord que ce soit == ERROR_SUCCES
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    char *reg&#91;3&#93;&#91;3&#93; =&#123;&#123;"1","2","3"&#125;,&#123;"REG_DWORD","REG_SZ","REG_BINARY"&#125;,&#123;'"','None"',""&#125;&#125;//Imaginez que mon tableau a moi fait *reg&#91;3&#93;&#91;26&#93;
    //Ecriture dans le registre
            //Création de la clef
            if&#40;RegCreateKeyEx&#40;HKEY_LOCAL_MACHINE, "SOFTWARE\\RealVNC\\WinVNC4\\", NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL&#41; == ERROR_SUCCESS&#41;
            for&#40;i = 0; i <26; i++&#41;
            &#123;
                    RegSetValueEx&#40;hKey, reg&#91;1&#93;&#91;i&#93;, NULL, reg&#91;2&#93;&#91;i&#93;, reg&#91;3&#93;&#91;i&#93;, sizeof&#40;reg&#91;3&#93;&#91;i&#93;&#41;&#41;; //la c'est mon code telqu'il est actuellement la compilation reussi ais les clef ne sont pas cree
    &#125;
    Citation Envoyé par MSDN
    LONG RegCreateKeyEx(
    HKEY hKey,
    LPCWSTR lpSubKey,
    DWORD Reserved,
    LPWSTR lpClass,
    DWORD dwOptions,
    REGSAM samDesired,
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
    PHKEY phkResult,
    LPDWORD lpdwDisposition );
    Parameters

    hKey
    [in] Handle to a currently open key or one of the following predefined reserved handle values:
    HKEY_CLASSES_ROOT
    HKEY_CURRENT_USER
    HKEY_LOCAL_MACHINE
    HKEY_USERS
    Windows CE does not support the HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA predefined reserved handle values.

    The key opened or created by the RegCreateKeyEx function is a subkey of the key identified by the hKey parameter.

    lpSubKey
    [in] Pointer to a null-terminated string specifying the name of a subkey that this function opens or creates. The subkey specified must be a subkey of the key identified by the hKey parameter. This subkey must not begin with the backslash character (‘\’). This parameter cannot be NULL. In Windows CE, the maximum length of a key name is 255 characters, not including the terminating NULL character. You can also only nest 16 levels of sub-keys in Windows CE.
    Reserved
    [in] Reserved; set to 0.
    lpClass
    [in] Pointer to a null-terminated string that specifies the class (object type) of this key. This parameter is ignored if the key already exists. In Windows CE, the maximum length of a class string is 255 characters, not including the terminating NULL character.
    dwOptions
    [in] Ignored; set to 0 to ensure compatibility with future versions of Windows CE.
    samDesired
    [in] Ignored; set to 0 to ensure compatibility with future versions of Windows CE.
    lpSecurityAttributes
    [in] Set to NULL. Windows CE automatically assigns the key a default security descriptor.
    phkResult
    [out] Pointer to a variable that receives a handle to the opened or created key. When you no longer need the returned handle, call the RegCloseKey function to close it.
    lpdwDisposition
    [out] Pointer to a variable that receives one of the following disposition values: Value Description
    REG_CREATED_NEW_KEY The key did not exist and was created.
    REG_OPENED_EXISTING_KEY The key existed and was simply opened without being changed.

    Return Values

    ERROR_SUCCESS indicates success. A nonzero error code defined in Winerror.h indicates failure. To get a generic description of the error, call FormatMessage with the FORMAT_MESSAGE_FROM_SYSTEM flag set. The message resource is optional; therefore, if you call FormatMessage it could fail.
    "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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    La premiere commande regcreateex reussi bien sur de sur verifie a chaque reprise. Le pb vient de regsetvalueex. les different paramettre ne sont pas bon.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    voila arpres recherche j'arrive a ca et ca marche
    enfin a peu pres c'est ok pour les donnees de tye REG_SZ et BINARY mais pour les valeures de type DWORD ca fonctionne pas

    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
    HKEY hKey;                              // Handle de l'ouverture de la clef de registre
            unsigned long type;
            int i;
            RegCreateKeyEx&#40;HKEY_LOCAL_MACHINE, "SOFTWARE\\RealVNC\\WinVNC4\\", NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL&#41;;
            for&#40;i = 0; i <26; i++&#41;
            &#123;
                    if&#40;strcmp&#40;reg&#91;1&#93;&#91;i&#93;, "REG_SZ"&#41;==0&#41;
                            type = REG_SZ;
                    else if&#40;strcmp&#40;reg&#91;1&#93;&#91;i&#93;, "REG_BINARY"&#41;==0&#41;
                            type = REG_BINARY;
                    else if&#40;strcmp&#40;reg&#91;1&#93;&#91;i&#93;, "REG_DWORD"&#41;==0&#41;
                            type = REG_DWORD;
                    RegSetValueEx&#40;hKey, reg&#91;0&#93;&#91;i&#93;, NULL, type, &#40;PBYTE&#41;reg&#91;2&#93;&#91;i&#93;, strlen&#40;reg&#91;2&#93;&#91;i&#93;&#41;&#41;;
            &#125;
            RegCloseKey&#40;hKey&#41;;
    Merci pour un petit coup de main

  5. #5
    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
    Points : 6 498
    Points
    6 498
    Par défaut
    Pour le type REG_DWORD il faut sans doute faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RegSetValueEx&#40;hKey, reg&#91;0&#93;&#91;i&#93;, NULL, type, &#40;PBYTE&#41;reg&#91;2&#93;&#91;i&#93;, sizeof&#40;reg&#91;2&#93;&#91;i&#93;&#41;&#41;;
    ou même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RegSetValueEx&#40;hKey, reg&#91;0&#93;&#91;i&#93;, NULL, type, &#40;PBYTE&#41;reg&#91;2&#93;&#91;i&#93;, sizeof&#40;DWORD&#41;&#41;;
    "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

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

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci j'en etati arrive a cette conclusion a peu pres
    merci pour la confirmation

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

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    bon alors la j'ecrit ds la base de registre ss pb meme des valeur DWORD c'etait le dernier argumetn qui posait pb mais je comprend pas bien comment je doit formater la valeur DWORD que je passe a la fontion

    Merci de votre aide

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Points : 83
    Points
    83
    Par défaut
    extrait de la doc VC++

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DWORD dwData;
        dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | 
            EVENTLOG_INFORMATION_TYPE; 
     
        if &#40;RegSetValueEx&#40;hk,      // subkey handle 
                "TypesSupported",  // value name 
                0,                 // must be zero 
                REG_DWORD,         // value type 
                &#40;LPBYTE&#41; &dwData,  // pointer to value data 
                sizeof&#40;DWORD&#41;&#41;&#41;    // length of value data 
            ErrorExit&#40;"Could not set the supported types."&#41;;

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

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci a tous mais c'est ok j'ai tout bien compris et mon code tourne nickel
    merci de votre aide

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

Discussions similaires

  1. Manipulation de la base de registre
    Par climz dans le forum VBScript
    Réponses: 5
    Dernier message: 04/01/2008, 13h04
  2. Lire mot de passe de la base de register
    Par nemya dans le forum C#
    Réponses: 1
    Dernier message: 25/12/2007, 12h30
  3. manipulation de la base de registre
    Par 9tita dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 23/05/2007, 22h49
  4. Réponses: 1
    Dernier message: 06/11/2006, 09h09
  5. Réponses: 14
    Dernier message: 20/09/2006, 21h07

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