Le béaba...

Résolu
Utilisateur anonyme - 4 oct. 2007 à 20:42
 Utilisateur anonyme - 4 oct. 2007 à 21:54
Bonjour,

J'ai une question toute "conne" à poser. Voilà : j'essaie d'écrire le plus simplement du monde une clé en  DWORD comme ceci :

     HKEY hkey;


     DWORD dwData;


     CHAR szBuf[] = "1";


     RegCreateKeyEx ( HKEY_LOCAL_MACHINE,


     "Software\\Microsoft\\Windows",


     0,


     NULL,


     REG_OPTION_NON_VOLATILE,


     KEY_WRITE,


     NULL,


     &hkey,


     &dwData);      


     RegSetValueEx(hkey,


     "test",


     0,


     REG_DWORD,


     (LPBYTE) szBuf,


     strlen(szBuf));

En m'appuyant sur ceci :

     HKEY hkey;
     DWORD dwData;
     CHAR szBuf[] = "%SystemRoot%\\prog.exe";
     RegCreateKeyEx ( HKEY_LOCAL_MACHINE,
     "Software\\Microsoft\\Windows",
     0,
     NULL,
     REG_OPTION_NON_VOLATILE,
     KEY_WRITE,
     NULL,
     &hkey,
     &dwData);      
     RegSetValueEx(hkey,
     "test",
     0,
     REG_SZ,
     (LPBYTE) szBuf,
     strlen(szBuf));

mais systématiquement (valeur DWORD non valide) en retour...je ne vous cache pas que pour trouver des exemples simples sur le net, bin c'est pas simple du tout (quand un mec trouve la solution c'est "j'ai trouvé ! merci et au revoir" et démerdes-toi avec mon code pourri...)

Merci pour un petite aide.

3 réponses

Utilisateur anonyme
4 oct. 2007 à 20:55
ça c'est sadique...encore un tort boyau :)
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 oct. 2007 à 20:52
Si c'est un DWORD, on passe l'adresse d'un DWORD et on met 4 au lieu d'un strlen.

ciao...
BruNews, MVP VC++
0
Utilisateur anonyme
4 oct. 2007 à 21:54
C'est bon, j'ai trouvé !

Merci...et au revoir
0
Rejoignez-nous