Condividi tramite


Procedura: leggere i dati dal Registro di sistema di Windows

Aggiornamento: novembre 2007

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 principale 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.

Esistono altri due oggetti nella classe Registry: DynData e PerformanceData. Entrambi sono istanze della classe RegistryKey. L'oggetto DynData contiene le informazioni dinamiche del Registro di sistema, che sono supportate soltanto in Windows 98 e Windows Me. L'oggetto PerformanceData può essere utilizzato per accedere alle informazioni dei contatori di prestazioni relative alle 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

Altre risorse

Operazioni Windows in C++

.Guida per programmatori .NET