Bonjour!
J'ai tenté d'utiliser la fonction RegQueryValueEx afin de récupérer la donnée d'une clés dans la base de registre Windows mais malgrès tout ce que j'ai trouvé comme information (y compris le site MSDN) je n'arrive pas à l'utiliser correctement!
La donnée que je veux récupérer doit ensuite être comparée à une autre que je fournis et si la donnée extraite de la base de registre ne correspond pas à celle que je donne alors je la remplace par la nouvelle (je vérifie en fait que la donnée soit bien à jour et si elle ne l'est pas je fais la mise à jour par un RegSetValueEx).
Voici la partie de mon code concernée par le problème :
char data[64], datatest[MAX_PATH] = ""; //data est la valeur que je renseigne et datatest est la donnée de la clés qui sera mise à jour si elle ne correspond pas à data
DWORD datatestsize;
HKEY valeur;
LPCTSTR subkey; //contient la subkey que je renseigne ailleur
RegOpenKeyEx (HKEY_LOCAL_MACHINE, TEXT(subkey), 0, KEY_SET_VALUE, &valeur);
RegQueryValueEx (valeur, TEXT(valuename), 0, 0, (BYTE*)datatest, &datatestsize);
printf("Longueur de data : %i\n", strlen(data));
printf("Longueur de datatest : %i\n", strlen(datatest));
printf("Donnee de datatest : %s\n", &datatest);
La valeur de datatest récupérée est toujours NULL (donc "") et sa taille est donc de 0 alors que cela n'est pas le cas!
Mon compilateur ne me rapporte pas de warning ni d'erreurs donc je ne voit pas ce qui cloche!
Help s'il vous plait!!