Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lecture de clés du registre

5 réponses
Avatar
stefrs
Bonjour, j'utilise le code suivant pour accéder à une clé du registre. Je
souhaite alors, par le biais d'une boucle, récupérer les noms de toutes les
sous clés...

Voici le code :

RegistryKey Cache = Registry.CurrentUser.OpenSubKey
(@"Software\Microsoft\Internet
Explorer\Windows\CurrentVersion\Ext\Stats\",false);
foreach(string subKeyName in Cache.GetSubKeyNames())
{
using(RegistryKey tempKey = Cache.OpenSubKey(subKeyName))
{
MessageBox.Show(tempKey.ValueCount.ToString() + "-" + tempKey.Name);
foreach(string valueName in tempKey.GetValueNames())
{
MessageBox.Show(valueName + "-" +tempKey.GetValue(valueName).ToString());
}
}
}

Le message d'erreur obtenu est le suivant :
La référence d'objet n'est pas définie à une instance d'un objet.

Please help me, it's urgent !!! Very

5 réponses

Avatar
Paul Bacelar
A quel ligne ?
--
Paul Bacelar
MVP VC++

"stefrs" wrote in message
news:
Bonjour, j'utilise le code suivant pour accéder à une clé du registre. Je
souhaite alors, par le biais d'une boucle, récupérer les noms de toutes
les
sous clés...

Voici le code :

RegistryKey Cache = Registry.CurrentUser.OpenSubKey
(@"SoftwareMicrosoftInternet
ExplorerWindowsCurrentVersionExtStats",false);
foreach(string subKeyName in Cache.GetSubKeyNames())
{
using(RegistryKey tempKey = Cache.OpenSubKey(subKeyName))
{
MessageBox.Show(tempKey.ValueCount.ToString() + "-" + tempKey.Name);
foreach(string valueName in tempKey.GetValueNames())
{
MessageBox.Show(valueName + "-" +tempKey.GetValue(valueName).ToString());
}
}
}

Le message d'erreur obtenu est le suivant :
La référence d'objet n'est pas définie à une instance d'un objet.

Please help me, it's urgent !!! Very




Avatar
momo
Voici la ligne :
"RegistryKey Cache = Registry.CurrentUser.OpenSubKey
(@"SoftwareMicrosoftInternet..."

Je ne comprends pas la cause de ce message d'erreur .

Help me ,please ...

Thinks


"Paul Bacelar" wrote:

A quel ligne ?
--
Paul Bacelar
MVP VC++

"stefrs" wrote in message
news:
> Bonjour, j'utilise le code suivant pour accéder à une clé du registre. Je
> souhaite alors, par le biais d'une boucle, récupérer les noms de toutes
> les
> sous clés...
>
> Voici le code :
>
> RegistryKey Cache = Registry.CurrentUser.OpenSubKey
> (@"SoftwareMicrosoftInternet
> ExplorerWindowsCurrentVersionExtStats",false);
> foreach(string subKeyName in Cache.GetSubKeyNames())
> {
> using(RegistryKey tempKey = Cache.OpenSubKey(subKeyName))
> {
> MessageBox.Show(tempKey.ValueCount.ToString() + "-" + tempKey.Name);
> foreach(string valueName in tempKey.GetValueNames())
> {
> MessageBox.Show(valueName + "-" +tempKey.GetValue(valueName).ToString());
> }
> }
> }
>
> Le message d'erreur obtenu est le suivant :
> La référence d'objet n'est pas définie à une instance d'un objet.
>
> Please help me, it's urgent !!! Very
>
>





Avatar
Tsunoo Rhilty
> Je ne comprends pas la cause de ce message d'erreur .



Ce pourrait-il qu'il faille d'abord ouvrir HKLM (..LOCAL_MACHINE) avant de
faire ce que tu fais !??!
Avatar
momo
Salut Tsuno Rhilty
En fait mon erreur vient du "foreach" :

"foreach(string subKeyName in Cache.GetSubKeyNames()"

j'ai "Cache.GetSubKeyNames()" qui se met en jaune...

Thinks
Avatar
Tsunoo Rhilty
il y a 2 erreurs dans ton code
la 1ère => Le chemin dans le registre est mauvais. Ici le bon:
"SoftwareMicrosoftWindowsCurrentVersionExtStats"

la 2ième:

tu ne teste pas si cache==null (ou cache!=null)



bonne chance!