Procedura: leggere i dati dal Registro di sistema di Windows (C++/CLI)

Nell'esempio di codice riportato di seguito viene utilizzata la chiave CurrentUser per leggere i dati dal Registro di sistema di Windows. Innanzitutto vengono enumerate le sottochiavi utilizzando il metodo GetSubKeyNames, quindi viene aperta la sottochiave Identities utilizzando il metodo OpenSubKey. Come per le chiavi di primo livello, ciascuna sottochiave è rappresentata dalla classe RegistryKey. Infine, viene utilizzato il nuovo oggetto RegistryKey per enumerare le coppie chiave/valore.

Esempio

Codice

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

Osservazioni

La classe Registry è semplicemente un contenitore per le istanze statiche di RegistryKey. Ciascuna istanza rappresenta un nodo radice del Registro di sistema. Le istanze sono ClassesRoot, CurrentConfig, CurrentUser, LocalMachine e Users.

Oltre a essere statici, gli oggetti all'interno della classe Registry sono di sola lettura, come anche le istanze della classe RegistryKey create per accedere al contenuto degli oggetti del Registro di sistema. Per informazioni su come evitare questo comportamento, vedere Procedura: inserire dati nel Registro di sistema di Windows (C++/CLI).

Esistono altri due oggetti nella classe Registry: DynData e PerformanceData. Entrambi sono istanze della classe RegistryKey. L'oggetto DynData contiene informazioni dinamiche del Registro di sistema che sono supportate solo in Windows 98 e Windows Me. L'oggetto PerformanceData può essere utilizzato per accedere alle informazioni del contatore di prestazioni per le applicazioni che utilizzano il sistema di monitoraggio delle prestazioni di Windows. Il nodo PerformanceData rappresenta le informazioni che non sono effettivamente archiviate nel Registro di sistema e che quindi non possono essere visualizzate mediante Regedit.exe.

Vedere anche

Concetti

Procedura: inserire dati nel Registro di sistema di Windows (C++/CLI)

Altre risorse

Operazioni Windows (C++/CLI)

.Guida per programmatori .NET