Partager via


Comment : lire les données du Registre Windows (C++/CLI)

L'exemple de code suivant utilise la clé CurrentUser pour lire les données du Registre Windows. Les sous-clé sont d'abord énumérées à l'aide de la méthode GetSubKeyNames, puis la sous-clé Identities est ouverte à l'aide de la méthode OpenSubKey. Comme les clés racine, chaque sous-clé est représentée par la classe RegistryKey. Pour terminer, le nouvel objet RegistryKey est utilisé pour énumérer les paires clé/valeur.

Exemple

Code

// registry_read.cpp
// compile with: /clr
using namespace System;
using namespace Microsoft::Win32;

int main( )
{
   array<String^>^ key = Registry::CurrentUser->GetSubKeyNames( );

   Console::WriteLine("Subkeys within CurrentUser root key:");
   for (int i=0; i<key->Length; i++)
   {
      Console::WriteLine("   {0}", key[i]);
   }

   Console::WriteLine("Opening subkey 'Identities'...");
   RegistryKey^ rk = nullptr;
   rk = Registry::CurrentUser->OpenSubKey("Identities");
   if (rk==nullptr)
   {
      Console::WriteLine("Registry key not found - aborting");
      return -1;
   }

   Console::WriteLine("Key/value pairs within 'Identities' key:");
   array<String^>^ name = rk->GetValueNames( );
   for (int i=0; i<name->Length; i++)
   {
      String^ value = rk->GetValue(name[i])->ToString();
      Console::WriteLine("   {0} = {1}", name[i], value);
   }

   return 0;
}

Remarques

La classe Registry est simplement un conteneur pour les instances statiques de RegistryKey. Chaque instance représente un nœud du Registre de la racine. Les instances sont ClassesRoot, CurrentConfig, CurrentUser, LocalMachine et Users.

En plus d'être statiques, les objets de la classe Registry sont en lecture seule. Par ailleurs, les instances de la classe RegistryKey qui sont créées pour accéder au contenu des objets du Registre sont également en lecture seule. Pour obtenir un exemple illustrant comment substituer ce comportement, consultez Comment : écrire des données dans le Registre Windows (C++/CLI).

Il existe deux objets supplémentaires dans la classe Registry : DynData et PerformanceData. Tous les deux sont des instances de la classe RegistryKey. L'objet DynData contient des informations de Registre dynamiques prises en charge uniquement dans Windows 98 et Windows Millenium Edition. L'objet PerformanceData peut être utilisé pour accéder aux informations de compteur de performance pour les applications qui utilisent le Système d'analyse des performances de Windows. Le nœud PerformanceData représente des informations qui ne sont pas réellement stockées dans le Registre et qui ne peuvent donc pas être affichées à l'aide de Regedit.exe.

Voir aussi

Concepts

Comment : écrire des données dans le Registre Windows (C++/CLI)

Autres ressources

Opérations Windows (C++/CLI)

Programmation .NET dans Visual C++