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);
*/
}