RegSetValueEx Hexadecimal

chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009 - 10 juil. 2008 à 14:32
chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009 - 10 juil. 2008 à 18:26
Bonjour,
Voila bientot 2 jours que je galère comme un fou !!
Alors aidez moi s'il vous plait !!
Voila je souhaite modifier la base de registre en editant une clé via la fonction RegSetValueEx.
Le problème est que cette valeur doit être en hexadecimal et que avec le code suivant je ne trouve pas du tout la valeur attendue...

                       RegCreateKeyEx(
             HKEY_LOCAL_MACHINE,     // handle to an open key
             "System\\CurrentControlSet\\Control\\TimeZoneInformation",    // address of subkey name
             0,     // reserved
             NULL,  // address of class string
             REG_OPTION_NON_VOLATILE,// special options flag
             KEY_ALL_ACCESS,     // desired security access
             NULL,              // address of key security structure
             &ActiveTimeBiasKey,            // address of buffer for opened handle
             NULL);  // address of disposition value buffer
                      
           RegSetValueEx(ActiveTimeBiasKey, "ActiveTimeBias" ,0,REG_DWORD,(LPBYTE) ActiveTimeBiasKeyValue ,sizeof(ActiveTimeBiasKeyValue));   

La clé que je trouve est 0x66667830...rien à voir...
J'ai essaye de rentrer la valeur en décimale mais cela ne fonctionne pas non plus...
Je suis débutant en c++ donc merci de me donner des exemples pour vos explications !
Merci d'avance

7 réponses

chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009
10 juil. 2008 à 14:33
Au fait pardon voici ma valeur :
char *ActiveTimeBiasKeyValue="0xffffff88";
Merci !
0
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
10 juil. 2008 à 14:41
DWORD ActiveTimeBiasKeyValue = 0xffffff88;

           RegSetValueEx(ActiveTimeBiasKey, "ActiveTimeBias" ,0,REG_DWORD, &ActiveTimeBiasKeyValue , 4);   

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
0
chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009
10 juil. 2008 à 15:49
OUHOUAAA
Bon il manquer juste le cast (LPBYTE) devant &ActiveTimeBiasKeyValue  et cela marche..
Merci beaucoup !!!
Par contre je voudrais bien comprendre pourquoi la taille est 4 ?!?
Et sinon un dernier petit coup de main s'il vous plait pour rentrer une valeur binaire !
parce que j'en peux plus la...

int DaylightStartKeyValue=0000030005000200;

                       RegCreateKeyEx(
            
             HKEY_LOCAL_MACHINE,     // handle to an open key
             "System\\CurrentControlSet\\Control\\TimeZoneInformation",    // address of subkey name
             0,     // reserved
             NULL,  // address of class string
             REG_OPTION_NON_VOLATILE,// special options flag
             KEY_ALL_ACCESS,     // desired security access
             NULL,              // address of key security structure
             &DaylightBiasKey,            // address of buffer for opened handle
             NULL);  // address of disposition value buffer
                      
           RegSetValueEx(DaylightBiasKey, "DaylightBias" ,0,REG_DWORD,(LPBYTE) &DaylightBiasKeyValue,sizeof(DaylightBiasKeyValue));

Merci merci beaucoup
0
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
10 juil. 2008 à 15:57
4 car c'est la taille en octect d'un dword....

sinon pour l'autre....

char DaylightStartKeyValue[]="0000030005000200";

           RegSetValueEx(DaylightBiasKey, "DaylightBias" ,0,REG_BINARY,(LPBYTE) DaylightBiasKeyValue,16);

(16 car c'est la taille de ta chaine hexa)

++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
0

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

Posez votre question
chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009
10 juil. 2008 à 16:40
Ok merci beaucoup de ta réponse super rapide...Cela fonctionne mais j'ai en fait un souci.
Je viens de me rendre compte que la valeur que je veux rentrer n'est pas la bonne. C'est à dire que les données de la valeur sont bien 00 00 03 00 05 00 02 00 mais cela ne corresponds pas à la valeur (hexadecimale ?) qui est noté par des"...."
J espère m'être fait comprendre...
En fait :
Je veux la valeur suivante :
0000      00 00 03 00 05 00 02 00       .....
0008      00 00 00 00 00 00 00 00      .....
0010      

et moi j'ai la valeur suivante avec la fontion regsetex :

0000      30 30 30 30 30 33 30 30   00000300
0008      30 35 30 30 30 32 30 30   05000200
0010

Merci !!
0
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
10 juil. 2008 à 17:07
hum essai

char DaylightStartKeyValue[] ="00305020"
;

           RegSetValueEx(DaylightBiasKey, "DaylightBias" ,0,REG_BINARY,(LPBYTE) DaylightBiasKeyValue,8);

++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
0
chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009
10 juil. 2008 à 18:26
Re,
non cela ne fonctionne pas..
Sinon il faudrait que je traduise la partie en gras dans le même code que la partie en pointillé mais je ne trouve pas les regles de codage...
Et je comprends pas trop cette valeur binaire ou il n'y a pas de 1 et de 0 ...

0000      00 00 03 00 05 00 02 00       .....
0008      00 00 00 00 00 00 00 00      .....
0010      

Merci de votre aide
0
Rejoignez-nous