écrire une clef en binaire

alphaone Messages postés 134 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 14 novembre 2009 - 30 janv. 2005 à 10:47
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 30 janv. 2005 à 11:54
Ma fonction ne marche pas.
Voici comment je la lance:
EcrireTexteBinary(HKEY_CURRENT_USER,REG_BINARY,".DEFAULT\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\tips","clef","vall");


voici ma fonction:
void EcrireTexteBinary(HKEY HK,DWORD RE,char* cle,char* nom,char* valeur) {


SECURITY_ATTRIBUTES SecAtt;
HKEY Retour;
DWORD dwDisp = 0;
LPDWORD lpdwDisp = &dwDisp;
BYTE *b;
HANDLE heap;
char a[20];
RegCreateKeyEx(HK, cle, 0L, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, &SecAtt, &Retour, lpdwDisp);
heap=HeapCreate(0,0,0);
b=(BYTE*)HeapAlloc(heap,0,30);
strcpy((char*)b, "Valeur...");
//RegSetValueEx(Retour,nom,0,REG_BINARY,b ,strlen(b));
//RegSetValueEx(Retour,nom,0,REG_BINARY,(LPBYTE)valeur,strlen(valeur));
RegSetValueEx(Retour,nom,0,RE ,(PBYTE)valeur,strlen(valeur)+1);
HeapFree(heap,0,b);
HeapDestroy(heap);
RegCloseKey(Retour);
/*
SECURITY_ATTRIBUTES SecAtt;
SecAtt.nLength = sizeof (SECURITY_ATTRIBUTES);
SecAtt.lpSecurityDescriptor = NULL;
SecAtt.bInheritHandle = TRUE;
HKEY Retour;
DWORD Action;
RegCreateKeyEx(HK,cle,0,"", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, & SecAtt, &Retour, &Action);
RegSetValueEx(Retour,nom,0,RE ,(LPBYTE)valeur,strlen(valeur)+1);
RegCloseKey(Retour);
*/
}

3 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
30 janv. 2005 à 11:24
strlen sur du binaire risque de ne pas donner quoi que ce soit de valable, faut dire le nbr d'octets à insérer.

ciao...
BruNews, MVP VC++
0
alphaone Messages postés 134 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 14 novembre 2009
30 janv. 2005 à 11:45
tu peut faire un copier coller en modifiant le code pour qu'il marche car je ne voit pas ce qu'il faut faire.
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
30 janv. 2005 à 11:54
DWORD nBytes = ???
RegSetValueEx(hk, nom, 0, REG_BINARY, (BYTE*) valeur, nBytes);

ciao...
BruNews, MVP VC++
0
Rejoignez-nous