Valeur de subkey (const BYTE*)

Résolu
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 11 août 2006 à 13:56
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 - 12 août 2006 à 15:13
Bonjour à tous,

Voila , j'ai une fonction qui crée une nouvelle subKey. Elle se crée bien, l'ennui c'est que aparement je n'ai pas compris comment lui assigner une valeur.

Voici ma fonction :

BOOL __stdcall ApplyPatch(){
     HKEY hkNoShare;
     long loError;
     DWORD dwPosition;
    
     loError = RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\parameters",0,KEY_ALL_ACCESS,&hkNoShare);
     if(loError != ERROR_SUCCESS){
         RegCloseKey(hkNoShare);
         return FALSE;
     }          
                       
     RegSetValueEx(hkNoShare,"AutoShareServer2",0,REG_DWORD,(const BYTE*)0x00000000,NULL);
     RegCloseKey(hkNoShare);    
     return TRUE;
}

Comme vous le voyez je crée une nouvelle subkey du nom de AutoShareServer2, et je voudrai bien lui donner la valeur 0, met voila , aparement (const BYTE*)0x00000000 ne fonctionne pas. Quelqu'un peut m'aider svp? et tant que l'on y ai , pour le dernier paramètre je n'ai pas compris non plus comment on l'applique. A savoir :

(extrait de la MSDN)

* cbData : <dd>[in] Size, in bytes, of the information pointed to by the lpData parameter. If the data is of type REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ, cbData must include the size of the terminating null character. The maximum size of data allowed in Windows CE is 4 KB.

Merci d'avance.

10 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 août 2006 à 14:33
DWORD v = 0;
RegSetValueEx(hkNoShare, "AutoShareServer2", 0, REG_DWORD, (LPBYTE) &v, sizeof(DWORD));

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 août 2006 à 14:25
if(RateOuverture) N'Y A RIEN A FERMER !!!

Adresse 0 c'est pour planter ??? donne adresse d'un buffer.

ciao...
BruNews, MVP VC++
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
11 août 2006 à 14:33
Non je veu donner la valeur 0 a la subKey :s
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 août 2006 à 14:34
L'adresse d'un DWORD est bien l'adresse d'un buffer de 4 octets.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
11 août 2006 à 14:40
j'ai esseyé avec :

char szValeur = "0x00000000";

et

RegSetValueEx(hkNoShare,"AutoShareServer2",0,REG_DWORD,(const BYTE*)szValeur,strlen(szValeur);

Mais cela ne vas tjrs pas : (valeur DWORD non valide)
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
11 août 2006 à 14:40
ha ok lol tu as répondu trop vite lol.
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 août 2006 à 16:15
Salut.

Pourrais tu remettre le même morceau de code mais cette fois corrigé (donc celui que tu utilisera dans ton application) ici stp?

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 août 2006 à 16:38
Je voudrais m'assurer de quelque chose s'il te plait.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
12 août 2006 à 10:42
Désolé j'ai vu ta demande un peu tard. voila :

DWORD dwValeur = 0;

loError = RegSetValueEx(hkNoShare,"AutoShareServer",0,REG_DWORD,(const BYTE*)&dwValeur,sizeof(DWORD));

Si tu veus , mon code est ici .
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 août 2006 à 15:13
Oui. J'ai vue ton code. Ça va. Tu n'as pas fais l'erreur que je craignais. ;)

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
< body>
0
Rejoignez-nous