Registre windows en lecture [Résolu]

Signaler
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
Bonjour,

j'aimerai de l'aide si possible sur le registre windows j'arrive a creer une clé , ou l'ouvrir, a en supprimer une... etc mais pas a lire une valeur, par exemple je sais qu'il faut faire comme dans l'exemple en bas mais je bloque pour le reste, quelqu'un pourrait t'il me faire un code vite fais pour que je comprenne

HKEY hkey;
RegCreateKey(HKEY_LOCAL_MACHINE,"chemin",&hkey);
RegQueryValueEx(hkey, "valeur", NULL, NULL, j'en sais rien, idem);

9 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
HKEY hKey;
char szValue[256] = "";
unsigned long dwLen = 256;

RegCreateKey(HKEY_LOCAL_MACHINE,"software\\Gamesettings",&hkey);
RegQueryValueEx(hkey, "Version", NULL, NULL, (LPBYTE)szValue
, &dwLen);
MessageBox(NULL,szValue,NULL,0);
Messages postés
41
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
3 mars 2006

Hello,
voila une fonction que j'ai créé pour lire le chemin d'install de visual C++ dans la base de registre:

CString CTools::SearchVisual60InRegistry()
{
LONG status;

char lpValue[1000];
unsigned long lpcbValue= 1000;
long ulOptions=0;
HKEY phkResult;
VALENT val_list;
DWORD num_vals;

//open
status=RegOpenKey
(
HKEY_LOCAL_MACHINE,
"software\\Microsoft\\VisualStudio\\6.0\\SetUp\\Microsoft Visual C++",
&phkResult
);

if(status!=ERROR_SUCCESS)
{
RegCloseKey(phkResult);
return "";
}

val_list.ve_valuename="ProductDir";
val_list.ve_valuelen=10;
val_list.ve_valueptr=0;
val_list.ve_type=REG_SZ;

num_vals=1;//sizeof val_list;


status= RegQueryMultipleValues
(
phkResult, // handle to key to query
&val_list, // pointer to array of value entry structures
num_vals, // size of array of value entry structures
lpValue, // pointer to buffer for value information
&lpcbValue // pointer to size of value buffer
);


if(status! =ERROR_SUCCESS)
{
RegCloseKey(phkResult);
return "";
}

RegCloseKey(phkResult);

GetShortPathName(lpValue,lpValue,1000);

return lpValue;
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

:s on m'a dit d'utiliser regqueryvalue :s c'est pas sa :s, et puis je comprend pas tout a fait a quoi sert le var_list et num_vals, bref c'est tres flou le registre, puis msdn explique vraiment mal
Messages postés
117
Date d'inscription
vendredi 5 novembre 2004
Statut
Membre
Dernière intervention
15 janvier 2013

Salut, pour récupérer la valeure d'une clée dans la base de registre tu peux faire comme ca :

HKEY hKey;

unsigned
long dwLen;
char szValue[256] = "";


//Tu ouvres la clée
RegOpenKey(HKEY_LOCAL_MACHINE, "Chemin", &hKey);

//Et tu récupère la valeure
RegQueryValueEx(hKey, "Nom de la valeure", NULL, NULL, (LPBYTE)&szValue, &dwLen);



NeoUmbrella Corp.
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

et szValue et dwLen je les déclare comment (char , int, dword...)
.
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

euh oups dsl j'avai pas vu au dessus -_-
.
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

j'ai un petit probleme je fais ceci en ayant bien déclaré key et dwLen mais a la messagebox que j'ai fais en vérication il n'y a aucune donnée..

voici mon code,

RegCreateKey(HKEY_LOCAL_MACHINE,"software\\Gamesettings",&hkey);
RegQueryValueEx(hkey, "Version", NULL, NULL, (LPBYTE)&key, &dwLen);
MessageBox(NULL,key,NULL,0);
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

bizarre ca marche :s alors que j'avais fais la meme chose sauf que j'avai remplacé le nom szValue par key
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Il te manquait unsigned long dwLen = 256;